#django #jwt #postman #django-rest-framework-simplejwt
#django #jwt #postman #django-rest-framework-simplejwt
Вопрос:
Я пытаюсь использовать SimplejWT вместе с Django Rest-Framework для аутентификации. Когда я перехожу к конечной точке через браузер, я получаю этот ответ:
Но когда я использую 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. Вы решили эту проблему?