1

Oauth2 身份验证库在本地主机上运行良好,但在上传到 Google App Engine 时崩溃

oauth.go

当它执行上述代码的第 250 行时

r, err := (&http.Client{Transport: t.transport()}).PostForm(t.TokenURL, v)

错误响应是“权限被拒绝”

4

1 回答 1

6

api.go 文档

由于 Google App Engine URL Fetch API 需要每个请求的上下文,因此您必须在 HTTP 处理程序中使用 *plus.Service。这个包提供了 WithNoAuthPlus 和 WithOAuthPlus 函数,您可以使用它们来包装您的 HTTP 处理程序,为它们提供完全初始化的 *plus.Services。

例子:

c := appengine.NewContext(r)
trans := &oauth.Transport{
    Config:    oauthConfig,
    Transport: &urlfetch.Transport{Context: c},
}
trans.Exchange(code)
resp, err := trans.Client().Get(profileInfoURL)
于 2012-06-28T02:49:27.840 回答