Код ниже отлично работает на локальном сервере, но при адаптации к движку Google для приложений (func main изменен на init и имя пакета устанавливается из основного приложения для тестирования) oauth2callback-запрос не работает больше, ниже запрос перенаправляется на обработчик oauth2error.Martini oauth2callback перенаправляет на oauth2error после адаптации к GAE
http://testapp.com/oauth2callback?code=OAUTHRESPONSEFROMFACEBOOK&state=%2F
package testapp
import (
"github.com/go-martini/martini"
goauth2 "github.com/golang/oauth2"
"github.com/martini-contrib/oauth2"
"github.com/martini-contrib/sessions"
"net/http"
)
func init() {
m := martini.Classic()
m.Use(sessions.Sessions("my_session", sessions.NewCookieStore([]byte("secret123"))))
m.Use(oauth2.Facebook(
goauth2.Client("AppID", "AppSecret"),
goauth2.RedirectURL("http://testapp.com/oauth2callback"),
goauth2.Scope("email,user_birthday,user_friends,publish_actions,user_location,user_photos"),
))
// Tokens are injected to the handlers
m.Get("/", func(tokens oauth2.Tokens) string {
if tokens.Expired() {
return "not logged in, or the access token is expired"
}
return "logged in"
})
// Routes that require a logged in user
// can be protected with oauth2.LoginRequired handler.
// If the user is not authenticated, they will be
// redirected to the login path.
m.Get("/restrict", oauth2.LoginRequired, func(tokens oauth2.Tokens) string {
return tokens.Access()
})
http.Handle("/", m)
}
ли вы изменили настройки приложения facebook для нового домена? –
Да, я изменил настройки Facebook. – denizeren