【问题标题】:adonis.js "E_INVALID_METHOD: logout method is not implemented by jwt schemeadonis.js "E_INVALID_METHOD: jwt 方案没有实现注销方法
【发布时间】:2018-09-11 22:14:37
【问题描述】:

我正在使用:

  • 阿多尼斯 4.1.0,
  • jwt 方案,mongodb

注册和登录工作正常,在我的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

这里可能出了什么问题?

【问题讨论】:

    标签: authentication jwt adonis.js


    【解决方案1】:

    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'})
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-24
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2018-03-27
      相关资源
      最近更新 更多