Проблемы с не обновляющимися токенами Django REST JWT?
Я внедрял JWT-токены в свое приложение django REST и добился того, что оно в основном работает с помощью simple-jwt, найденного здесь. Я могу войти в систему и получить свои токены обновления и доступа, но я заметил, что если я пытаюсь обновить свой токен через jwt_views.TokenRefreshView.as_view()
, я получаю ошибку следующего содержания:
HTTP 401 Unauthorized
{
"detail": "Token is invalid or expired",
"code": "token_not_valid"
}
Я пытался найти решение на reddit и stackoverflow, но безрезультатно. Почему мой токен не обновляется? Вот соответствующие части моего кода:
Релевантный код
settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
"rest_framework.authentication.SessionAuthentication",
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
SIMPLE_JWT = {
'AUTH_HEADER_TYPES': ('Bearer', 'Token'),
'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',
}
models.py
#custom user profile model
class User(AbstractUser):
link1 = models.CharField(max_length=100, blank=True)
link2 = models.CharField(blank=True, max_length=100)
link3 = models.CharField(blank=True, max_length=100)
link4 = models.CharField(blank=True, max_length=100)
about_me = models.CharField(blank=True, max_length=200)
class Meta:
db_table = 'auth_user'
urls.py
from rest_framework_simplejwt import views as jwt_views
urlpatterns += [
path('admin/', admin.site.urls),
path('api/token/', jwt_views.TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', jwt_views.TokenRefreshView.as_view(), name='token_refresh'),
]
Ожидаемая и фактическая производительность
Предполагалось обновить токен с помощью api/token/refresh/
после получения его через api/token/
, но возникла ошибка, говорящая о том, что токен недействителен/просрочен.
Что я пробовал
Честно говоря, я в основном пытался просто обновить страницу и повторить те же шаги снова и снова, надеясь, что что-то наконец изменится, потому что я действительно не имею понятия, как это происходит, учитывая, что я следовал 3 простым шагам из документации и каким-то образом потерпел неудачу в этом.
Редактировать
Я заметил, что когда я декодирую свой токен обновления на JWT.io, полезная нагрузка становится неузнаваемой. Что происходит?