django - 如何处理令牌?
问题描述
我有个问题。在我的项目中,用户登录我的应用程序后会生成一个访问令牌,然后将其放在 cookie 上。此访问令牌包含用户权限等信息以及有关他的一些其他详细信息。
对于身份验证部分,我使用“DEFAULT_AUTHENTICATION_CLASSES”,它映射到从 rest_framework.authentication 子类化 TokenAuthentication 类的类。
而不是在每个视图中再次解码访问令牌,我怎样才能从访问令牌中获得它的权限?我应该使用什么?可以将解码后的令牌放入 request.session 中吗?
解决方案
将访问令牌存储在 cookie(或会话)中,并且对于对服务器的每个相关请求,添加以下标头:
Authorization: Token [your_token_from_the_cookie]
在要使用令牌身份验证保护的视图上,添加适当的装饰器:
@api_view(['GET', 'POST', etc.])
@authentication_classes([TokenAuthentication,])
@permission_classes([IsAuthenticated])
其中一些装饰器可以在您的设置文件中全局设置。
简而言之,请求一次令牌,存储它,然后在每次发出需要身份验证的请求时使用它。
https://www.django-rest-framework.org/api-guide/authentication/
推荐阅读
- mysql - 编写查询以显示从学生那里获得的最高平均值
- javascript - 为什么我需要将对象传递给 Array.from?
- django - 配置不当:字段名称“titleweb_poster”对于模型“ContestDetail”无效
- python - 如何减慢 Pillow 中的图像显示速度
- google-cloud-firestore - Firestore rest api 在 arduino ide 中发出经过身份验证的请求
- python - 我如何通过 selenium 点击“javascript:void(0)”
- reactjs - 为什么我的日期输入让我回到反应前一天
- mysql - 我不明白为什么这两个带有 WHERE IN 的 SQL 查询会给出不同的结果
- c# - CefSettings 在 WPF c# 中给出错误或不工作
- python - 反复导入文件