Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine Martini oauth2callback在适应GAE后重定向到oauth2error_Google App Engine_Go_Oauth 2.0_Facebook Oauth_Martini - Fatal编程技术网

Google app engine Martini oauth2callback在适应GAE后重定向到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

下面的代码在本地服务器上工作得很好,但当适应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(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()
    })
}