龙卷风重定向参数

时间:2015-11-02 03:11:41

标签: python-3.x redirect tornado

用户通过网址

通过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

1 个答案:

答案 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中)