我在我的应用程序中实现 Nuxt Auth(本地/刷新)的一半。我在数据库中有一个存储刷新令牌的表,我想在 Nuxt Auth 注销时从数据库中删除刷新令牌。Nuxt Auth 没有将刷新令牌发送到我的端点,因此我无法查找它并将其从数据库中删除。
Nuxt Auth 在登录时正确获取令牌和用户详细信息,并正确调用我的注销 API 端点,它只是发送一个空正文。
包.json:
"@nuxtjs/auth-next": "^5.0.0-1624817847.21691f1",
nuxt.config:
auth: {
strategies: {
local: {
scheme: 'refresh',
token: {
property: 'accessToken',
maxAge: 1800,
global: true,
},
refreshToken: {
property: 'refreshToken',
data: 'refreshToken',
maxAge: 60 * 60 * 24 * 30
},
endpoints: {
login: {url: '/login', method: 'post'},
refresh: { url: '/token', method: 'post'},
logout: {url: '/logout', method: 'delete'},
user: {url: '/user', method: 'get'}
},
user: {
property: false,
},
tokenRequired: true,
tokenType: 'bearer'
}
}
}
API端点:
router.delete('/logout', async (req, res) => {
const sql =`DELETE FROM tokens WHERE id = '${req.body.refreshToken}'`
await pool.query(sql)
res.sendStatus(204)
})