#django #vue.js #django-rest-framework #nuxtjs #nuxt-auth
Вопрос:
Я хочу использовать аутентификацию JWT в своем приложении nuxtjs, но это не обновляет токен. В целях тестирования я установил время истечения срока действия маркера доступа 5 секунд и обновил маркер на 30 минут.
Срок действия токена доступа истекает через 5 секунд, но токен не обновляется через 5 секунд после выхода из системы
Я использую фреймворк Django rest, а в nuxt я использую nuxt auth v5
settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
SIMPLE_JWT = {
'AUTH_HEADER_TYPES': ('JWT',),
'ACCESS_TOKEN_LIFETIME': timedelta(seconds=5),
'REFRESH_TOKEN_LIFETIME': timedelta(minutes=30),
}
nuxt.config.js
auth: {
localStorage: false,
strategies: {
local: {
scheme: 'refresh',
token: {
property: 'access',
type: 'JWT',
required: true
},
refreshToken: {
property: 'refresh',
},
user: {
property: false,
autoFetch: true
},
endpoints: {
login: { url: '/jwt/create/', method: 'post',},
refresh: { url: '/jwt/refresh/', method: 'post',},
user: {url: '/users/me/', method: 'get' },
logout: false
},
}
}
}
}
Я немного новичок в JWT и nuxt. Поправьте меня, если я ошибаюсь.
Моя главная цель-просто автоматически обновить токен, когда истечет срок действия доступа к нему.
Комментарии:
1. Привет, ты пробовал это: auth.nuxtjs.org/schemes/refresh#usage Попробуйте сделать кнопку вызовом по щелчку, сначала в целях тестирования.
2. было бы неплохо иметь немного больше деталей. Что вы получаете в веб-инспекторе при обновлении, что вы urls.py конфигурация,…
3. Возможно, вам не хватает
data: 'refresh'
в конфигурации обновления в nuxt, так как вы используете simplejwt, и используется ключ по умолчанию: auth.nuxtjs.org/schemes/refresh/#refreshtoken4. эй, @jkoestinger, Да, это работа. Спасибо 🙂 и еще одна вещь, как сохранить вход пользователя в систему до тех пор, пока пользователь не выйдет из системы самостоятельно.