Найти пользователя для токена JWT в devise-jwt в rails - PullRequest
0 голосов
/ 14 января 2020

Я использую devise-jwt для аутентификации на основе токенов в моем приложении RoR. Клиент отправляет токен в заголовке следующим образом: Bearer #{token} Используя authenticate_user!, я могу аутентифицировать пользователя в контроллере и получить зарегистрированного пользователя как current_user.

Когда я используйте Actioncable, метод connect в connection.rb требует найти пользователя по токену. Файл connection.rb выглядит следующим образом:

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      token = request.env["Authorization"]
      find_verified_user
    end

    private
    def find_verified_user
      if authenticate_user!
        self.current_user = current_user
      else
        reject_unauthorized_connection
      end
    end
  end
end

Однако authenticate_user! здесь не является допустимым методом (так как он является указанием устройства c).

Мой вопрос: как мне найти current_user здесь? Как определить клиента, который отправил токен в шапке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...