web2py自定义登录验证方式钩子的实现

web2py内置了很多登录验证器,常用的本地化认证auth,认证方法都在gluon/contrib/login_methods中

使用方法:

from gluon/contrib  import 选用的方法

#注释后,启用auth自己的本地认证
auth.settings.login_methods=[方法及变量,]

web2py自定义登录验证方式钩子的实现,需要类似原有的方法,把认证放到modules目录下

示例custom_auth.py

def custom_auth(db,appname,auth,response,server="http://127.0.0.1"):

        def rmis(参数)

              return  True/False

        def custom_auth_login(username,
                        password,
                        server=server,db=db):

                username,password会自动传入,其他的参数通过db.py设置登录方法传入

                if   rmis(参数):

                        登录成功

                        设置本地登录环境login_bare设置

                         return  True  #登录成功

                else:

                        return False  #登录失败

在db.py中调用登录:

from custom_auth import custom_auth
auth.settings.create_user_groups = False
auth.settings.allow_basic_login=True

#注释后,启用auth自己的本地认证
auth.settings.login_methods=[custom_auth(db=db,appname='',response1=response,auth=auth),]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在web.py中实现多层路由,你可以使用子应用程序(sub-applications)的概念。子应用程序允许您在应用程序中组织和管理多个路由。 首先,您需要创建一个主应用程序(main application),并在其中定义顶级路由。然后,您可以创建一个或多个子应用程序,每个子应用程序都有自己的路由。 下面是一个示例代码,演示如何在web.py中实现多层路由: ```python import web # 创建主应用程序 urls = ( '/', 'Index', '/subapp', 'SubApp' # 子应用程序的路由 ) app = web.application(urls, globals()) # 定义主应用程序的处理器 class Index: def GET(self): return "Hello, World!" # 创建子应用程序 subapp_urls = ( '/path1', 'Path1', '/path2', 'Path2' ) subapp = web.application(subapp_urls, globals()) # 定义子应用程序的处理器 class Path1: def GET(self): return "This is path 1" class Path2: def GET(self): return "This is path 2" # 将子应用程序添加到主应用程序的路由中 app.add_subdir_application('/subapp', subapp) if __name__ == "__main__": app.run() ``` 在上面的示例中,主应用程序定义了根路径 `/` 的处理器 `Index`。子应用程序 `SubApp` 定义了 `/subapp/path1` 和 `/subapp/path2` 的处理器 `Path1` 和 `Path2`。 您可以根据需要添加更多的子应用程序和路由。子应用程序的路由将相对于其父应用程序的路径进行定义。 希望这个示例能帮助您理解如何在web.py中实现多层路由!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值