Ruby on rails 我有一个Rails应用程序API,带有Doorkeeper OAuth2客户端凭据。如何在控制器内获取承载令牌信息?

Ruby on rails 我有一个Rails应用程序API,带有Doorkeeper OAuth2客户端凭据。如何在控制器内获取承载令牌信息?,ruby-on-rails,oauth-2.0,ruby-on-rails-5,doorkeeper,Ruby On Rails,Oauth 2.0,Ruby On Rails 5,Doorkeeper,我有一个Rails应用程序API,带有Doorkeeper OAuth2客户端凭据。我想获取控制器内的令牌信息,获取使用承载令牌的用户的uid,并向日志发送logger.info。征求你的建议/想法我不确定我是否正确理解了你的问题,但我会在这里尽力 设置门卫配置后,控制器中将提供一个名为的助手方法。 此方法返回一个Doorkeeper::AccessToken实例,并应具有适当的资源所有者和已颁发令牌的应用程序 如果您使用的是客户端凭据流,则您颁发的令牌将只包含应用程序\u id,而不包含资源\

我有一个Rails应用程序API,带有Doorkeeper OAuth2客户端凭据。我想获取控制器内的令牌信息,获取使用承载令牌的用户的uid,并向日志发送logger.info。征求你的建议/想法

我不确定我是否正确理解了你的问题,但我会在这里尽力

设置门卫配置后,控制器中将提供一个名为的助手方法。 此方法返回一个
Doorkeeper::AccessToken
实例,并应具有适当的资源所有者和已颁发令牌的应用程序

如果您使用的是客户端凭据流,则您颁发的令牌将只包含
应用程序\u id
,而不包含
资源\u所有者\u id
(因为资源所有者是您的用户)

要拥有资源所有者,必须由颁发者颁发令牌

至于日志,您的应用程序\u控制器(或您使用的任何基本控制器)中可以有一个
before\u action
,它调用一个方法或一个进程来记录令牌信息:

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
与令牌相关的应用程序也是如此