OAuth2 INTRIDEA gem 和 HTTP 基本身份验证 header
OAuth2 INTRIDEA gem and HTTP basic authentication header
使用 INTRIDEA 的 OAuth2 Ruby gem,是否有推荐的使用密码策略添加 HTTP 基本身份验证的方法header?
此方法由 IETF RFC 6749 推荐并被 Yahoo 和 RingCentral OAuth 2.0 实施所要求。
我正在使用的所需 header 格式如下:
Authorization: Basic <base 64 encoded "CLIENT_ID:CLIENT_SECRET">
以下不起作用,似乎没有添加授权 header:
client = OAuth2::Client.new('CLIENT_ID', 'CLIENT_SECRET', :site => 'https://example.com)
token = client.password.get_token('USERNAME', 'PASSWORD')
以下有效,但冗长:
client = OAuth2::Client.new('CLIENT_ID', 'CLIENT_SECRET', :site => 'https://example.com)
token = client.password.get_token('USERNAME', 'PASSWORD', \
:headers => { 'Authorization' => 'Basic ' + Base64.strict_encode64("CLIENT_ID:CLIENT_SECRET") \
)
我看到的密码策略示例没有明确包含 header 所以我想知道它是如何完成的。
查看 auth_code
策略和 the code for oauth2/strategy/password.rb
, oauth2/strategy/base.rb
and oauth2/client.rb
, it appears the OAuth2 gem will add the client_id
and client_secret
form parameters to the body but not the header. This is permitted but NOT RECOMMENDED
by IETF RFC 6749 的文档后。要添加 IETF 推荐的 Authorization
header,看来您需要将其添加为参数,如上所示。
更多信息:Pull request #192 介绍了这一点,但可能由于向后兼容性问题而停滞不前。
使用 INTRIDEA 的 OAuth2 Ruby gem,是否有推荐的使用密码策略添加 HTTP 基本身份验证的方法header?
此方法由 IETF RFC 6749 推荐并被 Yahoo 和 RingCentral OAuth 2.0 实施所要求。
我正在使用的所需 header 格式如下:
Authorization: Basic <base 64 encoded "CLIENT_ID:CLIENT_SECRET">
以下不起作用,似乎没有添加授权 header:
client = OAuth2::Client.new('CLIENT_ID', 'CLIENT_SECRET', :site => 'https://example.com)
token = client.password.get_token('USERNAME', 'PASSWORD')
以下有效,但冗长:
client = OAuth2::Client.new('CLIENT_ID', 'CLIENT_SECRET', :site => 'https://example.com)
token = client.password.get_token('USERNAME', 'PASSWORD', \
:headers => { 'Authorization' => 'Basic ' + Base64.strict_encode64("CLIENT_ID:CLIENT_SECRET") \
)
我看到的密码策略示例没有明确包含 header 所以我想知道它是如何完成的。
查看 auth_code
策略和 the code for oauth2/strategy/password.rb
, oauth2/strategy/base.rb
and oauth2/client.rb
, it appears the OAuth2 gem will add the client_id
and client_secret
form parameters to the body but not the header. This is permitted but NOT RECOMMENDED
by IETF RFC 6749 的文档后。要添加 IETF 推荐的 Authorization
header,看来您需要将其添加为参数,如上所示。
更多信息:Pull request #192 介绍了这一点,但可能由于向后兼容性问题而停滞不前。