python - 登录 Tornado 后如何重定向到原始 url
问题描述
如果我打开一个需要登录才能访问的 url,登录完成后我希望被重定向到原始 url。我怎样才能在 Tornado 中实现这一点?我在 Google 中搜索,但没有找到任何有用的信息。我使用了以下代码,但它不起作用。
def LoginHandler(RequestHandler):
if not self.current_user:
self.render("login.html")
else:
self.redirect(self.request.headers["Referer"])
我使用了 Google 开发者工具,发现当 url 被重定向到登录页面时,请求标头中不存在“Referer”字段。
解决方案
如果您在@web.authenticated
处理程序上要求登录,它会将用户重定向到next
参数中包含当前 url 的登录页面。
例如,如果您请求/protected/page
,并且如果您没有登录,您将被重定向到具有此 url - 的登录页面/login?next=/protected/page
。
在您的登录处理程序中检查next
参数并重定向。
self.redirect(self.get_query_argument('next', '/default/url/if/next/is/empty'))
推荐阅读
- reactjs - 反应引导宽度不适合移动屏幕
- python - C# 到 Python 的消息传递
- android - 从 VM 运行 fastboot 到本地设备
- sql - 在 oracle 11 的子查询中使用 rownum
- php - Laravel:如何在 Pivot belongsToMany 关系中获得我的朋友关系
- amazon-web-services - 数据传输费用是否适用于从 amazon S3 访问图像?
- apache-spark - Pyspark 获取最新值作为新列
- go - 如何将 mac 地址(十六进制)转换为 [3] 字节并将其传递给 ValidMACPrefixMap
- fastapi - 数组中的 FastAPI 和 Pydantic AnyOf
- python - Gevent猴子补丁 - OverflowError