尝试将oauth代码交换为访问令牌时收到错误消息“ unsupported_grant_type”

时间:2019-07-21 13:03:45

标签: ruby-on-rails ruby oauth-2.0 google-oauth google-oauth2

我正在尝试使用Google oauth登录用户,但是遇到了一些问题。

我已经到了谷歌用code参数将我重定向回服务器的状态,我需要将其交换为access_token,但是我似乎无法接到POST呼叫正确的代码交换。

我正在遵循此页面上的代码(https://developers.google.com/actions/identity/oauth2?oauth=code),该部分内容为“访问令牌和刷新令牌的Exchange授权代码”

我在Rails应用中使用httpparty,这是我的以下测试代码:

    base_url = 'https://accounts.google.com/o/oauth2'
    # base_url = 'https://www.googleapis.com/oauth2/v4'

    body = {
      "client_id" => ENV['GOOGLE_CLIENT_ID'],
      "client_secret" => ENV['GOOGLE_CLIENT_SECRET'],
      "grant_type" => 'authorization_code',
      "code" => params[:code]
    }

    response = HTTParty.post(
      "#{base_url}/token",
      :headers => {
          'Content-Type' => 'application/x-www-form-urlencoded'
       },
       :body => body.to_json
    )

这是(在响应中)“错误” =>“ unsupported_grant_type”。

两个基本网址均返回此错误。

有人可以向我指出正确的方向,说明如何更正此请求以从Google获取访问令牌。

谢谢。

(也-我不认为这是该问题的重复,在阅读后,我的身体参数位于我认为正确的位置: Getting "error": "unsupported_grant_type" when trying to get a JWT by calling an OWIN OAuth secured Web Api via Postman

0 个答案:

没有答案