Как заставить martini-oauth2 работать с Facebook?
Я попробовал следующий пример кода с 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))
}
Кто-нибудь может указать, что я здесь делаю не так?
1 ответ
Похоже, ваш 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"