go - 如何使用带有用户 token E2E 的 CF 客户端

标签 go oauth ibm-cloud cloud-foundry

我想使用 go-cfclient库连接到 Cloud Foundry 并检查应用程序服务等。

我能够连接 Java/Node/Go,同时使用我的用户密码在代码中显式

现在我想使用 token 模拟一个场景,即而不是使用我的密码,使用我的用户 token 来模拟连接.

我怎样才能实现这种模拟?

首选 go-cfclient或节点。

更新

我需要一个带有 CF token 的 E2E 真实示例,其中用户使用一些示例 UI 并可能在第一次提供一些凭据,但所有后续请求都应仅使用 CF token 。

我需要这个 Golang 的例子。

最佳答案

您可以从下面的链接找到 CF 的典型 OAuth2 token 处理序列。将此token用于其他API调用,也可以引用其他测试用例。

https://github.com/cloudfoundry-community/go-cfclient/blob/a0a191bdc19a7a7189c050444aeaf20d2a125875/client_test.go#L117

无论如何,它是一个 OAuth2 token ,在其有效期之后就过期了。如果您在有效期内不刷新,则无法避免使用用户名/密码登录。

已更新

您已经说过您可以使用用户名和密码登录,所以您需要做的只是通过 API 调用获取 token 。像这样的东西:

c := &Config{
    ApiAddress: myApiAddress,
    Username:   "foo",
    Password:   "bar",
}

client, err1 := NewClient(c)
if err1 != nil {
    // error handling for connection failure
}
// you already reach here. right?

token, err2 := client.GetToken()
if err2 != nil {
    // error handling for token retreive failure
}

// just do what you want with token

您可以通过查看来源找到幕后发生的事情:https://github.com/cloudfoundry-community/go-cfclient/blob/a0a191bdc19a7a7189c050444aeaf20d2a125875/client.go#L375

要了解更多信息,请尝试打印出 client 结构:

fmt.Printf("client: %v\n", client)

那我想你可以找到更多信息。

关于go - 如何使用带有用户 token E2E 的 CF 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944243/

相关文章:

go - 我尝试测试用Go语言编写的代码,但始终收到此错误,并且不知道为什么

java - OAuth:App Id 或 redirect_uri 与授权码不匹配

go - 无法更新结构中的 map slice

json - 在 Golang 中解析 JSON 数据

go - 编译运行时时无法禁用优化

javascript - 如何使用访问 token 机制在 angular.js 中重定向用户?

oauth - Devise + Omniauth 无初始化文件

containers - Bluemix-无法获取插件:从存储库 'container-service'中查找 'Bluemix'

python - python 中的 Cloudant 数据库监听器

apache-spark - apache Spark bluemix 不可能