小编Lop*_*rio的帖子

如何添加身份验证中间件 JWT django?

我正在尝试创建一个中间件来使用 JWT 进行身份验证,但在视图中 request.user 始终是 AnonymUser。

当我验证中间件通过用户模型更改 request.user 时,确实如此,但在到达视图时,由于某种原因 request.user 始终是匿名用户

我正在使用 Django 1.11

# coding=utf-8
from django.utils.functional import SimpleLazyObject
from django.utils.deprecation import MiddlewareMixin
from django.contrib.auth.models import AnonymousUser, User
from django.conf import settings
from django.contrib.auth.middleware import get_user
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
import jwt
import json


class JWTAuthenticationMiddleware(MiddlewareMixin):
    def process_request(self, request):
        request.user = SimpleLazyObject(lambda: self.__class__.get_jwt_user(request))

    @staticmethod
    def get_jwt_user(request):
        user_jwt = get_user(request)
        if user_jwt.is_authenticated():
            return user_jwt
        token = request.META.get('HTTP_AUTHORIZATION', None)
        user_jwt = None
        if token is not None:
            try:
                user_jwt = jwt.decode( …
Run Code Online (Sandbox Code Playgroud)

python django jwt

5
推荐指数
1
解决办法
8913
查看次数

标签 统计

django ×1

jwt ×1

python ×1