首页 > 解决方案 > 如何处理令牌?

问题描述

我有个问题。在我的项目中,用户登录我的应用程序后会生成一个访问令牌,然后将其放在 cookie 上。此访问令牌包含用户权限等信息以及有关他的一些其他详细信息。

对于身份验证部分,我使用“DEFAULT_AUTHENTICATION_CLASSES”,它映射到从 rest_framework.authentication 子类化 TokenAuthentication 类的类。

而不是在每个视图中再次解码访问令牌,我怎样才能从访问令牌中获得它的权限?我应该使用什么?可以将解码后的令牌放入 request.session 中吗?

标签: djangodjango-rest-framework-jwt

解决方案


将访问令牌存储在 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/


推荐阅读