gpt4 book ai didi

ruby - OAuth2 INTRIDEA gem 和 HTTP 基本身份验证 header

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:23 25 4
gpt4 key购买 nike

使用 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 的文档之后对于 oauth2/strategy/password.rboauth2/strategy/base.rboauth2/client.rb,看来 OAuth2 gem 将将 client_idclient_secret 表单参数添加到主体而不是标题。 IETF RFC 6749 允许但不推荐 .要添加 IETF 推荐的 Authorization header ,您似乎需要将其添加为参数,如上所示。

更多信息:Pull request #192涵盖了这一点,但可能由于向后兼容性问题而停滞不前。

关于ruby - OAuth2 INTRIDEA gem 和 HTTP 基本身份验证 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30477165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com