如何将CF客户端与用户令牌E2E一起使用

时间:2018-08-21 08:04:34

标签: go oauth ibm-cloud cloudfoundry pivotal-cloud-foundry

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

使用代码中的我的用户密码明确 时,我能够连接Java / Node / Go。

现在,我想使用令牌来模拟场景,即代替使用密码,使用我的用户令牌来模拟连接

如何实现这种模拟?

go-cfclient或节点中首选。

更新

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

我需要Golang中的这个示例。

1 个答案:

答案 0 :(得分: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

您可以通过查看源代码https://github.com/cloudfoundry-community/go-cfclient/blob/a0a191bdc19a7a7189c050444aeaf20d2a125875/client.go#L375

来了解底层情况。

有关更多信息,jsut尝试打印出client结构:

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

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