Chen学无止境 2023-11-12 00:55 采纳率: 0%
浏览 4

sanic-auth如何作用在蓝图上

如题,使用sanic-auth对路由可以进行用户认证,如何对注册到app中的蓝图中的路由进行用户认证。

  • 写回答

1条回答 默认 最新

  • 木头人123。 2023-11-12 10:22
    关注

    在 Sanic 中,蓝图(Blueprint)是一种组织路由的方式,可以让你把路由分组,以便于管理和模块化。

    同样的,sanic-auth 是一个用于 Sanic 的用户认证库,可以帮助你处理用户的登录、注销以及保护路由等操作。

    要在蓝图上使用 sanic-auth 进行认证,你可以在蓝图的每个路由处理函数上使用 sanic-auth 的装饰器。例如:

    from sanic import Blueprint
    from sanic.response import text
    from sanic_auth import Auth, User
    
    app = Sanic(name='my_app')
    auth = Auth(app)
    
    bp = Blueprint('my_blueprint')
    
    @bp.route('/protected')
    @auth.login_required(user_keyword='user')
    async def protected(request, user):
        return text(f'Hello {user.id}')
    
    app.blueprint(bp)
    

    在上面的代码中,我们使用了 @auth.login_required 装饰器对 protected 路由进行了保护。

    这样,只有已经登录的用户才能访问 /protected 路由,未登录的用户将被重定向到登录页面(默认是 /login)。

    注意,@auth.login_required 需要放在路由装饰器 @bp.route 的下面,因为 Python 的装饰器是从下到上逐层应用的。

    另外,user_keyword 参数是可选的,它告诉 sanic-auth 在路由处理函数的参数中传入用户对象的参数名。如果你不提供这个参数,那么用户对象将不会被传入路由处理函数。

    这样你就可以在蓝图的路由中进行用户认证了。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月12日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境