我看到许多博客比基于会话的身份验证更喜欢jwt。
但是,django仍然是基于会话的,并且没有切换到jwt auth后端的选项。
我认为可以通过定义自定义JwtMiddleware(其工作是填充request.user
)来实现
但是描述该过程的在线资源很少(How add Authenticate Middleware JWT django?是我发现的唯一内容)
对django视图进行jwt身份验证是否感到烦恼?
*编辑
我认为原因是(至少对我来说)无法将Auth header
添加到页面刷新或<a href>
链接中。
我们可以为axios修补Auth header
或为rest api修补。
答案 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()