我正在为远程API实现客户端库,该API使用两条腿OAuth2进行身份验证。
package main
import (
"net/http"
"golang.org/x/oauth2/clientcredentials"
"golang.org/x/net/context"
)
type SpecialClient struct {
*http.Client
}
func NewClient(cid, cis string) *SpecialClient {
tconf := clientcredentials.Config{
ClientID: cid,
ClientSecret: cis,
TokenURL: "http://some.remote.resource/token",
}
c := tconf.Client(context.Background())
return &SpecialClient{c}
}
func main() {
c := NewClient("clientID", "clientSecret")
c.Get("http://some.remote.resource/path/to/resource")
}
这非常简单。现在,我认为远程API的OAuth2实现已被破坏,因为它没有根据RFC 6749正确返回令牌。我尝试使用golang.org/x/oauth2/clientcredentials
调试客户端创建,但我无法确定从令牌URL获取令牌的位置。我使用delve进行了近100次调用,但我没有看到客户端创建了一个获取令牌的新请求。有没有办法可以查看用于检索令牌的*http.Client
创建的请求?