python-web2py如何注销用户

我刚刚开始研究web2py,所以方法中有很多东西,例如对视图使用默认值等.
我花了很多时间试图弄清楚如何让人们登录并最终输入

@auth.requires_login()

在控制器方法的开始.这神奇地显示了注册表格,之后新用户登录了.
我不确定我是否完全了解幕后发生的事情,但一次只能了解一步.

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

在用户方法中是暴露语句,但不知道它们是什么意思或如何使用它们.所有这些点使我感到困惑.

解决方法:

I spent many hours trying to figure out how to get people to log in

您读过这本书的this section吗?它解释了@ auth.requires_login()的用法以及默认的user()函数如何工作以显示登录功能(以及如何根据需要创建专门用于登录的单独操作).在脚手架应用程序中,default.py控制器包括以下user()函数以公开所有Auth操作:

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

在类似“ // myapp / default / user / [action]”的URL中,请求的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导航栏-当用户登录时,该导航栏会自动包含“注销”链接,例如以上之一.

上一篇:Test


下一篇:PHP-无法从Symfony 2的“内存登录”中注销