1

我想在我的 nuxtjs 应用程序中使用 JWT 身份验证,但它没有刷新令牌。出于测试目的,我将访问令牌过期时间设置为 5 秒,并将令牌刷新时间设置为 30 分钟。

访问令牌在 5 秒后过期,但令牌在 5 秒后未刷新,已注销

我正在使用Django rest 框架,在 nuxt 中我正在使用nuxt auth v5

设置.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 不太熟悉。如我错了请纠正我。

我的主要目标是在访问令牌过期时自动刷新令牌。

4

0 回答 0