如何使用带有用户令牌E2E的CF客户端

8 oauth go cloud-foundry pivotal-cloud-foundry ibm-cloud

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

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

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

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

go-cfclient或Node中首选.

更新

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

我在Golang中需要这个例子.

sio*_*io4 2

您可以从下面的链接找到 CF 的典型 OAuth2 令牌处理序列。如需将此令牌用于其他 API 调用,您还可以参考其他测试用例。

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

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

更新

您已经说过可以使用用户名和密码登录,因此您需要做的就是通过 API 调用获取令牌。就像是:

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
Run Code Online (Sandbox Code Playgroud)

您可以通过检查源代码来了解幕后发生的情况:https://github.com/cloudfoundry-community/go-cfclient/blob/a0a191bdc19a7a7189c050444aeaf20d2a125875/client.go#L375

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

fmt.Printf("client: %v\n", client)
Run Code Online (Sandbox Code Playgroud)

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