在Go中调试两脚OAuth2

时间:2016-12-23 22:50:03

标签: debugging go oauth oauth2

我正在为远程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创建的请求?

0 个答案:

没有答案