如何在 Web2py 中使用 @auth.requires_login 设置条件

How to set a condition with @auth.requires_login in Web2py

在我的 web2py 网络应用程序中,控制器函数 def index(): 具有装饰器 @auth.requires_login()

出于开发和测试目的,我注释掉了这个装饰器。但是我经常忘记在提交代码之前取消注释。

我想将此装饰器更改为可以测试文件是否存在(即 skipLogin)以及是否不需要登录的东西。然后,我可以在我的 .gitignore 文件中添加 skipLogin 文件,而无需担心对装饰器行进行注释和取消注释。

我想它应该类似于 @auth.requires(lambda: xxx) 但我不知道 xxx 应该是什么。

auth.requires接受一个requires_login参数,所以你可以直接设置条件为True,然后有条件地设置requires_login的值。例如,您可以将其设置为要求非本地请求登录:

@auth.requires(True, requires_login=not request.is_local)