用户通过网址
通过oauth登录我的网站http://provemath.org/index?method=google&state=KasQzeMyWQj3YTvF4aZGi9smLUMwXa&code=4/OAeBwzZLSqoHtwBgEHojEQ1_FFO7TK03j5UUyF2Bdng#
我不太喜欢网址中参数的混乱,目前在重新加载时会出现问题。所以我想做的是将它们重定向到provemath.org,以便从URL中获取这些参数,但是以一些其他方式传递这些相同的变量。
是否可以进行重定向(类似self.redirect('http://provemath.org', self.request.uri)
)并通过网址传递而不是的变量?
看起来这种可能性并不是内置的:
http://www.tornadoweb.org/en/stable/_modules/tornado/web.html#RequestHandler.redirect
答案 0 :(得分:1)
它不是重定向本身的一部分,但您可以使用cookie传递此类信息(这是处理oauth重定向的常用方法)。通常使用oauth,您可以将oauth回调网址配置为provemath.org/oauth
(而非provemath.org/index
),然后在/oauth
处理程序中处理参数并设置Cookie。如果您使用的是tornado.auth.GoogleOAuth2Mixin
,则会显示
user = yield self.get_authenticated_user(
redirect_uri='http://provemath.org/oauth',
code=self.get_argument('code'))
self.set_secure_cookie("user", json.dumps(user))
self.redirect("/")
(或将user
保存到数据库,只需将用户ID放在cookie中)