我正在使用:
注册和登录正常,在我的authController.js
中注销失败:
async logout ({ request, response, auth }) {
await auth.logout()//falls here
return response.send('success')
}
代码:“ E_INVALID_METHOD”
消息:“ E_INVALID_METHOD:jwt方案未实现注销方法↵>更多
详细信息:https://err.sh/adonisjs/errors/E_INVALID_METHOD”
状态:500
这里可能出什么问题了?
答案 0 :(得分:0)
auth.logout()仅适用于基于会话的身份验证。
对于JWT,您需要撤消用户的RefreshToken **
**对于jwt方案,仅刷新令牌被吊销,因为实际令牌 永远不会保存在数据库中
这是Adonisjs 4.1的注销方法
async logout({ request, response, auth }) {
const refreshToken = request.input('refreshToken');
if(!refreshToken){
// You can throw any exception you want here
throw BadRequestException.invoke(`Refresh Token missing`);
}
await auth
.authenticator('jwt')
.revokeTokens([refreshToken], true)
return response.send({status : 200, "message" : 'success'})
}