0

Facebook に対して次のコード例を試しましたが、oauth2error にリダイレクトされ続けます。例のとおりに指示に従っていますが、うまくいかないようです。私は golag にはかなり慣れていませんが、最善の努力にもかかわらず、物事を機能させることができないようです。

package main

import (
    "log"
    "net/http"

    "github.com/go-martini/martini"
    gooauth2 "github.com/golang/oauth2"
    "github.com/martini-contrib/oauth2"
    "github.com/martini-contrib/sessions"
)    

func main() {
    m := martini.Classic()
    m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
    m.Use(oauth2.Facebook(&gooauth2.Options{
    ClientID:     "XXXX",
    ClientSecret: "XXXX",
    RedirectURL:  "http://localhost.foobar.com:8080/",
    Scopes:       []string{"public_profile"},
    }))
m.Get("/", func(tokens oauth2.Tokens) string {
    if tokens.IsExpired() {
        return "not logged in, or the access token is expired"
    }
    return "logged in"
})
m.Get("/restrict", oauth2.LoginRequired, func(tokens oauth2.Tokens) string {
    return tokens.Access()
})
m.Get("/success", oauth2.LoginRequired, func(tokens oauth2.Tokens) string {
    return tokens.Access()
})

log.Fatal(http.ListenAndServe(":8080", m))
}

ここで私が間違っていることを誰かが指摘できますか?

4

1 に答える 1

0

コールバック URL が正しく設定されていないようです。github の同様の構成を参照してください。

m.Use(oauth2.Github(&golang_oauth2.Options{
    ClientID:     "0.0",
    ClientSecret: "o.o",
    RedirectURL:  "http://localhost:3000/oauth2callback",
    Scopes:       []string{"user:email", "read:org"},
}))

リダイレクト URL を次のように設定してみてください。

RedirectURL:  "http://localhost.foobar.com:8080/oauth2callback"
于 2014-08-10T02:25:13.987 に答える