2014-10-31 4 views
0

У меня есть следующая проблема с tornado.oauth: когда пользователь входит в систему с помощью Google, Google посылает мне код на перенаправлением Ури и я стараюсь, чтобы получить некоторую информацию о пользователе с функцией get_authenticated_userТорнадо Google ошибка OAuth

class GoogleOAuth2CodeHandler(tornado.web.RequestHandler, 
          tornado.auth.GoogleOAuth2Mixin): 
    @tornado.gen.coroutine 
    def get(self): 
     user =yield self.get_authenticated_user(
      redirect_uri='http://localhost:8890/userdata', 
      code=self.get_argument("code") 
     ) 
     self.write("hello world!") 

но терпит неудачу со следующей ошибкой:

ERROR:tornado.application:Uncaught exception GET 
KeyError: 'google_oauth' 

Настройки:

settings = dict(
     cookie_secret="32oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=", 
     login_url="/auth/login", 
     redirect_uri="http://localhost:8890/auth", 
     google_consumer_key="", 
     google_consumer_secret="", 
     google_permissions="https://mail.google.com/ https://www.google.com/m8/feeds", 
     google_permissions2="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email" 
    )) 

consumer_key и consumer_secret правильно authorize_redirect работает правильно, и я действительно получить правильный код Google

ответ

2

google_consumer_key и google_consumer_secret взяты из Mixin OAuth1 Google. Для OAuth2, вам нужно google_oauth установку, которая должна быть ДИКТ, содержащий «ключ» и «секретные» поля:

google_oauth={"key": CLIENT_ID, "secret": CLIENT_SECRET}, 
+0

Примечание: Вам не нужно удваивать закрывающую скобку. –

Смежные вопросы