版本
模块:5.0.0-1624817847.21691f1 nuxt:2.15.8
Nuxt 配置
- 普遍的
Nuxt 配置
// Auth: https://auth.nuxtjs.org/ (v5)
auth: {
redirect: {
login: '/account/login/',
logout: '/account/login/',
callback: '/account/login/',
home: '/account/beams/'
},
strategies: {
local: {
scheme: 'refresh',
token: {
property: 'access_token',
maxAge: 120, // seconds, 2 minutes
global: true
},
refreshToken: {
property: 'refresh_token',
data: 'refresh_token',
maxAge: 1209600 // seconds, 2 weeks
},
user: {
property: 'user',
autoFetch: true
},
endpoints: {
login: { url: '/api/account/login', method: 'post', propertyName: 'token' },
refresh: { url: '/api/account/refresh', method: 'post', },
logout: { url: '/api/account/logout', method: 'post' },
user: { url: '/api/account', method: 'get' }
},
autoLogout: false
}
}
},
附加信息
清单
- [x] 我用最新的 Nuxt 版本测试过,问题仍然存在
- [x] 我已经用最新的模块版本测试过,问题仍然存在
- [x] 我已搜索问题跟踪器,但尚未报告此问题
重现步骤
期望什么?
当用户的令牌过期并refresh
实施方案时,不应注销用户并重定向回登录屏幕,应使用刷新令牌来获取新令牌,并且过渡应该是无缝的,允许任何经过身份验证的路由继续工作。
实际发生了什么?
在我的带有 Auth 模块的 Nuxt 项目中,我已经实现了该refresh
方案,但是,当我的令牌过期时,在我的令牌过期后我没有看到网络中对路由发出任何请求,我通过中间件refresh
导航到受保护的页面auth
.
我希望我缺少一些简单的配置?
我当前的令牌的测试期限为 1 分钟,而我的刷新令牌的测试期限为 14 天。
但是,添加时:
scheme: 'refresh'
refresh: { url: '/api/account/refresh', method: 'post', }
该功能似乎没有获取我的用户并自动让我登录。
我/api/account/refresh
的 API 中的端点返回以下内容:
{
refresh_token: 'my refresh token',
token_type: 'bearer',
expired_in: 5000
}
我/api/account/login
的 API 中的端点返回以下内容:
{
access_token: 'my token',
token_type: 'bearer',
expired_in: 1000
}
我错过了什么?