web2py - web2py 中的登录后重定向

标签 web2py

我无法控制 web2py 中的登录后重定向行为。

根据 this ,web2py 以不同的方式处理登录后重定向,这取决于登录是由系统发起的(例如,访问受身份验证保护的功能时)还是由用户发起的(点击“登录”链接时)。在前一种情况下,行为是在登录后重定向到引用页面,正如预期的那样。然而,在后者中,用户在登录后被重定向到索引页面,或在 auth.settings.login_next 中硬编码的页面。

我将如何设置以便登录后重定向始终将您返回到引用页面,而不管登录是如何启动的?

最佳答案

您可以更改“登录”链接,以便它们始终包含当前 URL 作为 _next 的值。查询字符串中的变量。例如,无论您在何处创建登录链接,都可以这样定义:

A('Login', _href=URL('default', 'user', args='login',
    vars=dict(_next=URL(args=request.args, vars=request.vars))))

这会将当前页面的 URL(包括任何参数和变量)添加到 _next登录链接的查询字符串中的变量,这将导致登录后重定向回当前页面。

如果您使用的是 auth.navbar()帮助生成您的登录链接,主干中已经有解决此问题的更改(将很快发布)。新款auth.navbar()将自动添加 _next所有链接的变量,因此在单击任何导航栏链接后,用户将被重定向回原始页面。同时,您可以编辑auth.navbar()如下:
import urllib
navbar = auth.navbar()
if not auth.is_logged_in and request.args(0) != 'login':
    navbar[1]['_href'] += '?_next=' +\
        urllib.quote(URL(args=request.args, vars=request.vars))

关于web2py - web2py 中的登录后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359263/

相关文章:

csv - web2py:网格 csv 导出显示 id,而不是引用字段的值

python - web2py:如何使用 SQLFORM.smartgrid 在删除之前执行指令

url - 如何在 web2py 中获取当前 url?

ubuntu - 在 Ubuntu 10.04 Lucid 上设置 Cherokee + Web2py

javascript - 如何解决阻止图表加载的错误 ("TypeError: popover is not a function")?

python - 如何在 Web2py 中对外键添加 NOT NULL 约束

azure - 如何将新文件路径添加到azure应用程序服务中的环境变量Path

python - 使用 web2py 将 BLOB 保存到 MySQL

model-view-controller - 如何封装web2py业务逻辑?

python - 转义 web2py 数据库连接字符串中的特殊字符