正在覆盖Doorkeeper刷新令牌响应



我也在尝试使用Doorkeeper发送刷新令牌响应中的用户详细信息(我只在API上使用它(。我尝试在另一个控制器中调用Doorkeeper::TokensController#create方法,但它不起作用。作为一种变通方法,我创建了一个继承自Doorkeeper::TokensController的新控制器,在创建方法中,我尝试执行render json: { tokens: JSON.parse(super), user: the_instance_i_want },但这将执行两次渲染,因为此方法也有一个渲染。

有其他办法解决这个问题吗?我还想在刷新令牌时刷新用户数据。

您应该为第一个jwt问题和刷新提供相同的响应。无论如何,您可以覆盖TokenResponsebody方法:

module Doorkeeper
module OAuth
class TokenResponse
def body
{
"access_token" => token.plaintext_token,
"token_type" => token.token_type,
"expires_in" => token.expires_in_seconds,
"refresh_token" => token.plaintext_refresh_token,
"scope" => token.scopes_string,
"created_at" => token.created_at.to_i,
"CUSTOM1" => YOUR_IMPLEMENTATION,
# custom
response_code: I18n.t('custom.status_code.ok'),
response_message: I18n.t('custom.success.default')
}.reject { |_, value| value.blank? }
end
end
end
end

最新更新