1

我是 django 和 DRF 的新手,我正在尝试使用 JWT 构建一个身份验证系统,我想在注册后直接登录用户,我阅读了文档,我设法手动创建了一个令牌并在我的序列化程序中返回它,但我的问题是这样的:

1)如何使用此令牌查看用户是否登录?

2) 我可以在模板中使用 {% if user.is_authenticated %} 吗?如果是这样怎么办?

3)如何在另一个视图中获取用户登录信息?

4) 有没有更有效的方法来处理 DRF 的身份验证?

4

2 回答 2

2

1-基本上当您使用 DRF 和 jwt 令牌时,意味着您正在使用基于令牌的身份验证,因此您的所有请求都应包含Authorization: basic <token value>. 所以 django drf 身份验证后端,将识别这个令牌,如果有效,用户将被验证。

2-我认为你不能再使用那个模板标签了。因为那是基于会话的身份验证。

3-如果您提供支持该令牌的身份验证并在标头中发送令牌,则每个视图都应包含用户信息request.user

4- 我认为最好的解决方案之一是基于令牌的 jwt 令牌。

于 2019-01-26T17:20:45.110 回答
0

DRF Auth and Permissions有很多关于在 DRF 中使用 auth 和权限的有用信息,请查看。

补充@Reza-Torkaman-Ahmadi 所说的话:

在您的视图中,您可以使用权限来确保用户经过身份验证:

permission_classes = (permissions.IsAuthenticatedOrReadOnly,) 
于 2019-01-26T17:31:21.823 回答