У меня есть API-интерфейс Rails APP с Doorkeeper OAuth2 client_credentials. Как получить информацию токена на предъявителя в контроллере? - PullRequest
0 голосов
/ 23 января 2020

У меня есть API-интерфейс Rails APP с Doorkeeper OAuth2 client_credentials. Я хочу получить информацию о токене в контроллере и получить идентификатор пользователя, который использовал токен на предъявителя, и отправить logger.info в журналы. Ищу ваши предложения / идеи в виду

1 Ответ

1 голос
/ 29 января 2020

Я не уверен, правильно ли я понял ваш вопрос, но постараюсь здесь как можно лучше.

Как только вы настроите конфигурацию своего привратника, вспомогательный метод с именем doorkeeper_token будет быть доступным в вашем контроллере. Этот метод возвращает экземпляр Doorkeeper::AccessToken и должен иметь правильного владельца ресурса и приложение для выданного токена.

Если вы используете поток учетных данных клиента, ваш выданный токен будет содержать только application_id, но не resource_owner_id (поскольку владелец ресурса является вашим пользователем).

Чтобы владелец ресурса мог выдать токен в потоке учетных данных пароля владельца ресурса .

As для журнала у вас может быть before_action в вашем application_controller (или любом используемом вами базовом контроллере), который вызывает метод или просто профи c для регистрации информации о токене:

before_action :log_token_info

def log_token_info
  # log user name or whatever attribute you wish
  # for the user id you can simply access the doorkeeper.resource_owner_id
  logger.info "Token resource owner: #{doorkeeper.resource_owner.name}"
end

То же самое для приложения, связанного с токеном

...