我有一个 Rails APP API 和 Doorkeeper OAuth2 client_credentials。如何在控制器中获取不记名令牌信息?
I have an Rails APP API with Doorkeeper OAuth2 client_credentials. How to get bearer token information within the controller?
我有一个 Rails APP API,带有 Doorkeeper OAuth2 client_credentials。我想在控制器中获取令牌信息并获取使用不记名令牌的用户的 uid 并将 logger.info 发送到日志。征求您的建议/想法
我不确定我是否正确理解了你的问题,但我会尽力而为。
一旦您设置了门卫配置,一个名为 doorkeeper_token
的辅助方法将在您的控制器中可用。
此方法 returns 一个 Doorkeeper::AccessToken
实例,应该具有适当的资源所有者和已发布令牌的应用程序。
如果您使用的是客户端凭据流程,您颁发的令牌将仅包含 application_id
而不会包含 resource_owner_id
(因为资源所有者是您的用户)。
要拥有资源所有者,必须由 resource owner password credentials flow 颁发令牌。
至于日志,您可以在 application_controller(或您使用的任何基本控制器)中有一个 before_action
,它调用一个方法或只是一个 proc 来记录令牌信息:
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
token相关的申请也是如此
我有一个 Rails APP API,带有 Doorkeeper OAuth2 client_credentials。我想在控制器中获取令牌信息并获取使用不记名令牌的用户的 uid 并将 logger.info 发送到日志。征求您的建议/想法
我不确定我是否正确理解了你的问题,但我会尽力而为。
一旦您设置了门卫配置,一个名为 doorkeeper_token
的辅助方法将在您的控制器中可用。
此方法 returns 一个 Doorkeeper::AccessToken
实例,应该具有适当的资源所有者和已发布令牌的应用程序。
如果您使用的是客户端凭据流程,您颁发的令牌将仅包含 application_id
而不会包含 resource_owner_id
(因为资源所有者是您的用户)。
要拥有资源所有者,必须由 resource owner password credentials flow 颁发令牌。
至于日志,您可以在 application_controller(或您使用的任何基本控制器)中有一个 before_action
,它调用一个方法或只是一个 proc 来记录令牌信息:
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
token相关的申请也是如此