Как обновить токен JWT в nuxt.js?

#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/#refreshtoken

4. эй, @jkoestinger, Да, это работа. Спасибо 🙂 и еще одна вещь, как сохранить вход пользователя в систему до тех пор, пока пользователь не выйдет из системы самостоятельно.