Oauth 谷歌认证与龙卷风
我正试图让谷歌认证与Tornado合作来测试这个概念。我有以下代码:Oauth 谷歌认证与龙卷风,oauth,tornado,Oauth,Tornado,我正试图让谷歌认证与Tornado合作来测试这个概念。我有以下代码: import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web import tornado.gen import tornado.auth import os.path import time from tornado.options import define, options define("port"
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.gen
import tornado.auth
import os.path
import time
from tornado.options import define, options
define("port",default=8000, help="run on port", type=int)
class AuthHandler(tornado.web.RequestHandler, tornado.auth.GoogleMixin):
@tornado.gen.coroutine
def get(self):
if self.get_argument('code', False):
print("now running auth_user()")
user = yield self.get_authenticated_user(
redirect_uri='http://localhost:8000/auth',
code=self.get_argument('code'))
self.set_secure_cookie('token',"XXX")
self.redirect('/')
else:
yield self.authorize_redirect(
redirect_uri='http://localhost:8000/auth',
client_id=self.settings['google_oauth']['key'],
scope=['profile', 'email'],
response_type='code',
extra_params={'approval_prompt': 'force'})
# def post(self):
# self.render('index.html')
class IndexHandler(tornado.web.RequestHandler):
def get(self):
token=self.get_secure_cookie('token')
if not token:
print("getting google token")
self.redirect('/auth')
else:
print("TOKEN!")
# def post(self):
# self.render('index.html')
if __name__ == '__main__':
tornado.options.parse_command_line()
H=[(r'/',IndexHandler),(r'/auth',AuthHandler)]
T=os.path.join(os.path.dirname(__file__),"templates")
settings=dict(
google_oauth = dict(key="XXX.apps.googleusercontent.com", secret ="YYYYY"),
cookie_secret = 'DPTDQARHTDayv8WV61iMSsvAD18Rc00bizO519+2i4w='
)
app = tornado.web.Application(handlers=H,template_path=T,debug=True, **settings)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
我不断地得到一份工作
"TypeError: authorize_redirect() got an unexpected keyword argument 'client_id'"
我按照文档获取客户机ID和密码,并将这些值放入设置中。我还将google控制台中的重定向URI设置为“localhost:8000/auth”应该是
class AuthHandler(tornado.web.RequestHandler, tornado.auth.GoogleOAuth2Mixin):