adonis.js "E_INVALID_METHOD: метод выхода из системы не реализован в схеме jwt - PullRequest
0 голосов
/ 12 сентября 2018

Я использую:

  • adonis 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

Что здесь может ошибаться?

1 Ответ

0 голосов
/ 01 ноября 2018

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