gpt4 book ai didi

web2py - web2py 中的登录后重定向

转载 作者:行者123 更新时间:2023-12-05 01:35:04 26 4
gpt4 key购买 nike

我无法控制 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com