我是django和DRF的新手,我正在尝试使用JWT构建身份验证系统,我想在注册后直接登录用户,阅读了文档,并设法手动创建了一个令牌并将其返回我的序列化器,但是我的问题是这样:
1)如何使用此令牌查看用户是否已登录?
2)我可以在模板中使用{%if user.is_authenticated%}吗?如果可以,怎么办?
3)如何让用户在另一个视图中登录信息?
4)是否有更有效的方法来处理DRF的身份验证?
答案 0 :(得分:2)
1-基本上,当您使用DRF和jwt令牌时,意味着您在使用基于令牌的身份验证,因此所有请求都应包含Authorization: basic <token value>
的http标头。因此,django drf身份验证后端将识别此令牌,并且如果有效,则将对用户进行身份验证。
2-我认为您不能再使用该templatetag。因为这是基于会话的身份验证。
3-如果您提供该令牌支持的身份验证并在标头中发送令牌,则每个视图的request.user
中都应包含用户信息
4-我认为最好的解决方案之一是基于令牌的jwt令牌。
答案 1 :(得分:0)
DRF Auth and Permissions关于在DRF中使用身份验证和权限有很多有用的信息,请查看。
加上@ Reza-Torkaman-Ahmadi所说的话:
在您的视图中,您可以使用权限来确保对用户进行身份验证:
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)