Как мы можем настроить ответ токена доступа, генерируемый портье - PullRequest
1 голос
/ 19 сентября 2019

Я хочу добавить пользовательский атрибут к токену доступа, сгенерированному привратником.

Doorkeeper::AccessToken.create!(:application_id => application_id, :resource_owner_id => resource_owner_id)

Он создаст и сохранит токен доступа, например, (34100470134f8018e0c30220c972f6540d489df687bb16c2b9d3b04e23168282 * беспокойство * таблица 100100 * * *я настраиваю этот автоматически сгенерированный токен доступа портье.

1 Ответ

1 голос
/ 19 сентября 2019

После https://github.com/doorkeeper-gem/doorkeeper/wiki/Customizing-Token-Response должно помочь вам:

В некоторых случаях вам может потребоваться расширить ответ токена OAuth2 некоторыми дополнительными данными.Чтобы сделать это для гема Doorkeeper, вам необходимо переопределить метод body класса Doorkeeper :: OAuth :: TokenResponse:

## lib/custom_token_response.rb
module CustomTokenResponse
  def body
    additional_data = {
      'username' => env[:clearance].current_user.username,
      'userid' => @token.resource_owner_id # you have an access to the @token object
      # any other data
    }

    # call original `#body` method and merge its result with the additional data hash
    super.merge(additional_data)
  end
end

Не забудьте добавить каталог lib /к путям автозагрузки, если вы используете Rails> = 4.

# config/application.rb

config.autoload_paths << "#{Rails.root}/lib"

Затем включите этот модуль в класс Doorkeeper TokenResponse, добавив следующую строку в конец config / initializer/doorkeeper.rb file:

## config/initializers/doorkeeper.rb
Doorkeeper.configure do
  # ...
end

Doorkeeper::OAuth::TokenResponse.send :prepend, CustomTokenResponse

И вам пора идти!

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