Я работаю над решением, которое использует токен JWT, находит связанного пользователя и настраивает пользователя в запросе для найденного пользователя с токеном.Мое промежуточное ПО выглядит так:
class UserTokenMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
header_token = request.META.get('HTTP_AUTHORIZATION', None)
if header_token is not None:
try:
token = request.META.get('HTTP_AUTHORIZATION', " ").split(' ')[1]
data = {'token': token}
valid_data = VerifyJSONWebTokenSerializer().validate(data)
user = valid_data['user']
request.user = user
except Token.DoesNotExist:
pass
print(request.user.auth_token);
return self.get_response(request)
И это работает!Auth_token присутствует!И он добавлен внизу моего промежуточного программного обеспечения примерно так:
MIDDLEWARE = [
#Added Last
"app.middleware.UserTokenMiddleware"
]
Теперь здесь, где не работает.Я пытаюсь выйти по удаленному токену, и мне нужен ключ.Итак, у меня есть это:
@action( url_path="logout", detail=False, methods=["get"], renderer_classes=[JSONRenderer])
def endsession(self, request):
result = logout(request)
#request.user.auth_token.delete()
print("Auth Token")
print(request.user.auth_token);
print(result)
return Response({"logout": "successful"})
За исключением того, что я всегда получаю следующую ошибку:
Exception Type: AttributeError at /v1/users/logout
Exception Value: 'AnonymousUser' object has no attribute 'auth_token'
Любая подсказка о том, почему auth_token внезапно исчезает и возвращается к AnonymousUser?