Django Rest-Framework с simpleJWT возвращает анонимного пользователя при отправке запроса от Postman

#django #jwt #postman #django-rest-framework-simplejwt

#django #jwt #postman #django-rest-framework-simplejwt

Вопрос:

Я пытаюсь использовать SimplejWT вместе с Django Rest-Framework для аутентификации. Когда я перехожу к конечной точке через браузер, я получаю этот ответ: Ответ

Но когда я использую postman, я получаю обратно анонимного пользователя. Это моя конфигурация postman: Postman

Моя конфигурация SimpleJWT:

 SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(days=30),
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': False,
'UPDATE_LAST_LOGIN': False,

'ALGORITHM': 'HS256',
'VERIFYING_KEY': None,
'AUDIENCE': None,
'ISSUER': None,
'JWK_URL': None,
'LEEWAY': 0,

'AUTH_HEADER_TYPES': ('Bearer',),
'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
'USER_AUTHENTICATION_RULE': 'rest_framework_simplejwt.authentication.default_user_authentication_rule',

'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
'TOKEN_TYPE_CLAIM': 'token_type',

'JTI_CLAIM': 'jti',

'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),
'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
 }
 

Код для конечной точки:

 @api_view(['GET'])
def get_user_profile(request):
    print(request.user)
    user= request.user
    serializer= UserSerializer(user, many= False)
    return Response(serializer.data)
 

Пользовательский сериализатор кодируется таким образом:

 class UserSerializer(serializers.ModelSerializer):

class Meta:
    model= User
    fields= ['id', 'username', 'email']
 

Комментарии:

1. Похоже, что ваш запрос не прошел проверку подлинности, используйте декоратор, необходимый для входа , чтобы убедиться, что запрос аутентифицирован.

2. Тогда как мне протестировать использование Postman?

3. Можете ли вы добавить значение REST_FRAMEWORK переменной settings?

4. Вы решили эту проблему?