Google app engine Martini oauth2callback在适应GAE后重定向到oauth2error
下面的代码在本地服务器上工作得很好,但当适应Google应用程序引擎时(func main更改为init,包名从main设置为test app),oauth2callback请求不再工作,下面的请求被重定向到oauth2error处理程序Google app engine Martini oauth2callback在适应GAE后重定向到oauth2error,google-app-engine,go,oauth-2.0,facebook-oauth,martini,Google App Engine,Go,Oauth 2.0,Facebook Oauth,Martini,下面的代码在本地服务器上工作得很好,但当适应Google应用程序引擎时(func main更改为init,包名从main设置为test app),oauth2callback请求不再工作,下面的请求被重定向到oauth2error处理程序 我的猜测是,您需要将appengine上下文注入Get方法 根据on-Go Martini repo,您可以执行以下操作: func AppEngine(m martini.Context, r *http.Request) { m.MapTo(ap
我的猜测是,您需要将appengine上下文注入Get方法 根据on-Go Martini repo,您可以执行以下操作:
func AppEngine(m martini.Context, r *http.Request) {
m.MapTo(appengine.NewContext(r), (*appengine.Context)(nil))
}
func init() {
m := martini.Classic()
m.Use(AppEngine)
// ...
m.Get("/", func(tokens oauth2.Tokens, c appengine.Context) string {
if tokens.Expired() {
return "not logged in, or the access token is expired"
}
return "logged in"
})
m.Get("/restrict", oauth2.LoginRequired, func(tokens oauth2.Tokens, c appengine.Context) string {
return tokens.Access()
})
}
您是否更改了新域的facebook应用程序设置?是的,我已更改了facebook设置。
func AppEngine(m martini.Context, r *http.Request) {
m.MapTo(appengine.NewContext(r), (*appengine.Context)(nil))
}
func init() {
m := martini.Classic()
m.Use(AppEngine)
// ...
m.Get("/", func(tokens oauth2.Tokens, c appengine.Context) string {
if tokens.Expired() {
return "not logged in, or the access token is expired"
}
return "logged in"
})
m.Get("/restrict", oauth2.LoginRequired, func(tokens oauth2.Tokens, c appengine.Context) string {
return tokens.Access()
})
}