Doorkeeper::OAuth::TokenResponse
返されたデータに何かを追加したいので、クラスを拡張する必要があります。デフォルトでは、そのクラスは次のような戻り本文を作成します。
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "...",
"scope": "some_scope"
}
それを維持して、新しいフィールドを追加したいと思います。
{
"access_token": "...",
"token_type": "bearer",
"expires_in": 7200,
"refresh_token": "...",
"scope": "some_scope",
"my_custom_field": 47
}
モンキーパッチTokenResponse
クラスなしでそれを行うことはできますか? そうでない場合、現在の実装を改善するためにできることはありますか (新しいバージョンの Doorkeeper などとの互換性を高めるため)? これが私の現在の実装です:
module Doorkeeper
module OAuth
class TokenResponse
old_body = instance_method(:body)
define_method(:body) do
body = old_body.bind(self).()
if self.token.scopes.include? 'some_scope'
body[:my_custom_field] = 47
end
body
end
end
end
end
私はその機能のテストを行っているので、Doorkeeper gem をアップグレードすると壊れるかどうかがわかります。