在Django视图中使用jwt身份验证?

时间:2019-08-26 02:31:31

标签: django jwt

我看到许多博客比基于会话的身份验证更喜欢jwt。

但是,django仍然是基于会话的,并且没有切换到jwt auth后端的选项。

我认为可以通过定义自定义JwtMiddleware(其工作是填充request.user)来实现 但是描述该过程的在线资源很少(How add Authenticate Middleware JWT django?是我发现的唯一内容)

对django视图进行jwt身份验证是否感到烦恼?

*编辑

我认为原因是(至少对我来说)无法将Auth header添加到页面刷新或<a href>链接中。

我们可以为axios修补Auth header或为rest api修补。

3 个答案:

答案 0 :(得分:1)

在Django中使用JWT并不感到烦恼。在传统的基于会话的身份验证上选择jwt时,会有不同的情况。大多数时候,您都需要基于会话的身份验证。基于Jwt的身份验证对于移动设备和/或当您具有大量登录用户时非常有用。如此之高,以至于即使在分片之后,您也难以处理身份验证。

大多数博客都告诉您使用jwt,因为相对而言这是新事物。

答案 1 :(得分:0)

我需要这个:https://github.com/jpadilla/django-rest-framework-jwt

但是您必须使用其余的框架。

答案 2 :(得分:0)

一旦开始将JWT用于DRF,请使用DRF装饰器允许JWT完成其工作。

https://www.django-rest-framework.org/api-guide/views/

from rest_framework.decorators import api_view, schema

@api_view(['GET'])
@schema(None)
def getTags(request):
    """Returns the data to display a clould tag"""
    lindex = Lindex()
    return lindex.getTags()