web2py如何注销用户

时间:2012-06-10 11:47:04

标签: python login web2py logout

我刚刚开始关注web2py,这个方法中的很多东西都是nwe,比如使用默认视图等。 我花了很多时间试图弄清楚如何让人们登录并最终投入

@auth.requires_login()

在控制器方法的开头。这神奇地提出了一个注册表单,然后新用户登录。 我不确定我是否完全理解幕后发生的事情,而是一步一步。

但是,我想提供一个注销按钮,不知道如何实现。显然我需要以某种方式调用默认注销。所以我需要在提交表单/按钮中添加一个url,并且可能会创建一个匹配url的控制器,但注销方法会是什么样的?

在user方法中是公开语句,但不知道它们的含义或如何使用它们。所有这些点都让我感到困惑。

1 个答案:

答案 0 :(得分:4)

  

我花了很多时间试图弄清楚如何让人们登录

你读过这本书的this section了吗?它解释了@auth.requires_login()的使用以及默认user()函数如何用于公开登录功能(以及如果需要,如何专门为登录创建单独的操作)。在scaffolding应用程序中,default.py控制器包含以下user()函数以公开所有Auth操作:

def user():
    return dict(form=auth())

在像“/ myapp / default / user / [action]”这样的网址中,请求的Auth操作(即URL的最后一个元素)将在request.args [0]中可用。当上述函数调用auth()时,Auth __call__()方法从request.args [0]读取操作,然后调用相应的Auth方法。如果URL是“/ myapp / default / user / login”,auth()将最终调用auth.login()方法,该方法将返回(并处理)登录表单。如果您想创建自己的自定义登录操作,也可以直接致电auth.login()

同样,URL“/ myapp / default / user / logout”最终将调用auth.logout()方法,该方法将注销用户。因此,如果要启用注销,只需生成注销URL的链接 - 最好的方法是使用URL()功能:

A('Logout', _href=URL('default', 'user', args='logout'))

注意,在脚手架应用程序中,layout.html视图使用auth.navbar()在页面右上角插入Auth导航栏 - 当用户登录时,导航栏会自动包含“注销”像上面那样链接。