fromrest_framework.permissionsimportIsAuthenticated frommyauth.authenticationsimportJWTAuthentication classUserModelViewSet(ModelViewSet): queryset = Users.objects.all() # 使用我们自定义的验证方法 authentication_classes = [JWTAuthentication] # 登录成功才能进行访问 permission_classes = [IsAuthenticated] # 重写...
jwt_decode_handler=api_settings.JWT_DECODE_HANDLERclassMyJwtAuthentication(BaseJSONWebTokenAuthentication):defauthenticate(self, request): jwt_value=request.META.get('HTTP_AUTHORIZATION')ifjwt_value:try:#jwt提供了通过三段token,取出payload的方法,并且有校验功能payload=jwt_decode_handler(jwt_value)exceptjwt...
2自己写个类auth.pyclassJwtAuthentication(BaseJSONWebTokenAuthentication):defauthenticate(self, request):#认证逻辑()#token信息可以放在请求头中,请求地址中#key值可以随意叫#token=request.GET.get('token')token=request.META.get('HTTP_Authorization'.upper())#校验token是否合法try: payload=jwt_decode_handler...
如果使用auth的user表做登录,不需要写额外的代码了]-认证:-1.视图类上加# 必须登录后才能访问fromrest_framework_jwt.authenticationimportJSONWebTokenAuthenticationfromrest_framework.permissionsimportIsAuthenticated# 是否认证通过classBookView(APIView):authentication_classes=[JSONWebTokenAuthentication]# 认证类,drf-jw...
从obtain_jwt_token开始, 通过ObtainJSONWebToken视图类处理,其实是父类JSONWebTokenAPIView的post方法通过传入的用户名和密码处理获取当前用户,签发了token 认证源码分析# # 视图类内认证类搭配权限类使用authentication_classes=[JSONWebTokenAuthentication,]permission_classes=[IsAuthenticated,] ...
DRF使用JWT进行用户认证 1. 首先需要安装第三方依赖包 pipinstalldjangorestframework-jwt 2. 在Django的settings文件中 配置全局的JWT认证类 REST_FRAMEWORK ={'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_jwt.authentication.JSONWebTokenAuthentication',#jwt认证组件'rest_framework.authentication.Session...
'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # 配置验证方式为Token验证 ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', #配置全局权限 ) } #配置JWT的token的超时时间 JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), # Token 过期时...
重写authentication方法defauthenticate(self, request):# 3.获取tokenjwt_token = request.META.get('HTTP_AUTHORIZATION')# 4.自定义校验规则 如: auth token jwttoken = self.parse_jwt_token(jwt_token)iftokenisNone:returnNone# 游客# 5.根据token拿到payload | token => payloadtry: payload = jwt_...
三、jwtAuth.py文件 定义 JwtQueryParamsAuthentication类(验证类)--->对token进行验证 classJwtQueryParamsAuthentication(BaseJSONWebTokenAuthentication):defauthenticate(self, request):#print("request")#print(request.META.keys())#print(request.META.get("HTTP_TOKEN"))headers=request.META.get("HTTP_TOKEN...
2、视图访问 JWT认证类 但是 第三方JWT的认证必须要在请求头中添加Authorization和对应的JWT +token参数,才会进行认证,否则就不认证(不好用需要从新写) fromrest_framework.viewsimportAPIViewfromrest_framework.responseimportResponsefromrest_framework_jwt.authenticationimportJSONWebTokenAuthenticationclassTestView(APIView...