首页 > 解决方案 > SPA 应用程序访问令牌的交换授权码

问题描述

我有一个带有 Rails BE 的 SPA React 应用程序。我正在使用https://github.com/anthonyjgrove/react-google-login离线生成codewith accessType 。这成功生成了一个代码,我可以取回它。

现在我正在尝试使用此代码使用 POSTMAN向https://oauth2.googleapis.com/token发出 POST 请求

curl --location --request POST 'https://oauth2.googleapis.com/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'code=4/0AX4XfWhUc8IC12kr1115g71111' \
--data-urlencode 'redirect_uri=urn:ief:wg:oauth:2.0:oob' \
--data-urlencode 'client_id=x.apps.googleusercontent.com' \
--data-urlencode 'client_secret=secret' \
--data-urlencode 'scope=' \
--data-urlencode 'grant_type=authorization_code'

就使用https://developers.google.com/oauthplayground而言,这看起来是正确的。它在这里工作。

但是,当我尝试通过 curl 或 HttParty 发出请求时,它会失败。我不确定这是否正在发生,因为我从 SPA 应用程序获取代码,然后使用我的 BE 应用程序发出其他请求。

[编辑] 我应该提到我尝试了多个不同的redirect_uri。本地主机:3000、3003。

标签: google-apigoogle-oauth

解决方案


解决方案是从 SPA 应用程序进行令牌 API 调用。我能够成功提出请求。

我需要重新考虑如何组织和拨打电话。


推荐阅读