如题,使用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 在路由处理函数的参数中传入用户对象的参数名。如果你不提供这个参数,那么用户对象将不会被传入路由处理函数。这样你就可以在蓝图的路由中进行用户认证了。
解决 无用评论 打赏 举报
悬赏问题
- ¥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驱动开发环境