当前位置: 首页 > 知识库问答 >
问题:

Google auth1到oauth2迁移:无效的授权标头

东方权
2023-03-14

我有一个使用oauth gem从google oauth1迁移到oauth2的脚本

一切似乎都是正确的,我无法检测到标头的任何问题,但它仍然响应:无效的授权标头。

以下是标题:

正在打开与帐户的连接。谷歌。通讯:443。。。已打开帐户的启动SSL。谷歌。通讯:443。。。已建立SSL

-

-

-

-

-

-

-

-

-

-

-

-

正在读取全部。。。

-

读取90字节连接关闭

代码如下:

oauth1_consumer_key    = "mykey"
oauth1_consumer_secret = "Gxxxxxxxxxxxxxxxxqb8"

# OAuth 1 - User Token / Secret.
oauth1_token           = '1/9G2xxxxxxxxxxxxxxsw2o'
oauth1_secret          = 'a-xxxxxxxxxxxxxxxmqG'

# OAuth 2 - Application ID / Secret
oauth2_client_id       = "the_id"
oauth2_client_secret   = "C-xxxxxxxxxxxxxxxxV"

# Migration Parameters.
params = {
  "grant_type"             => "urn:ietf:params:oauth:grant-type:migration:oauth1",
  "client_id"              => oauth2_client_id,
  "client_secret"          => oauth2_client_secret,
  # "oauth_signature_method" => "HMAC-SHA1"
}

# Create the consumer object.
consumer = OAuth::Consumer.new(
  oauth1_consumer_key,
  oauth1_consumer_secret,
  :site   => 'https://accounts.google.com',
  :scheme => :header
)


# Create the access token object.
access_token = OAuth::AccessToken.new(consumer, oauth1_token, oauth1_secret)

resp = access_token.post(
  "/o/oauth2/token",
  params,
  { 'Content-Type' => 'application/x-www-form-urlencoded' })

if resp.code.to_s != "200"
  # Raise an error.
  raise "#{resp.code} - #{resp.body}"
end

有什么想法吗?

共有1个答案

鞠嘉志
2023-03-14

更新oauth gem后,我又试了一次,它起作用了。

 类似资料:
  • 正如通常发生的那样,客户更改了他们的G Suite电子邮件密码,我们使用该密码发送电子邮件(在Java@AppEngine上)。令牌如预期的那样被撤销了,并且我们设法使所有的东西都能在DEV和UAT环境中正常工作,然而PROD由于某种原因仍然得到了臭名昭著的“无效授权”。我想知道数据存储中是否有一些缓存保存原始凭据?Stackdriver不允许对方法调用求值,因此无法看到里面的内容。我们怀疑这与缓

  • 我已经在stackoverflow中阅读了一些关于这个主题的其他帖子,但我仍然没有找到解决方案...:\ 非常感谢您的支持!

  • 登录时我总是得到无效的授权类型。我使用的是Laravel 7和passport 8.4。 我可以确认,我创建的client_secret没有错误运行php artisan护照:安装,但我找不到任何可能性,为什么获取访问令牌和刷新令牌不工作。 我使用自定义用户提供商,正确地设置在配置,我注意到如果我改变grant_typeclient_credentials它将只是工作,但没有刷新令牌,我想要什么。

  • 在使用旧Spring的RestTemplate与OAuth授权背后的一些API集成时,我正在进行以下操作: 然后GET会说: 作为一种解决办法,我使用Mono.FromCallable(...)包装了旧的RestTempate。我还尝试使用WebClient做一些定制客户机,它接受令牌和授权用户,然后对RESTAPI做第二次调用。但它不是很好,因为令牌可以过期,我将不得不执行更新过程。OAuth中

  • 我在下面设置Spring配置: 和Maven设置如下:

  • 我使用spring-security-oauth2:2.3.3和spring-boot-starter-security:2.0.2构建了带有REST WS的Spring web app。但我无法设置哪些endpoint受到保护。 添加“--header”authorization:Basic{{base64 client id:password}}“也没有帮助。这怎么可能呢? 根据spring