Google OAuth - 使用 Javascript 前端和服务器后端进行身份验证(授权代码流)
Google OAuth - Authenticate using Javascript Frontend and Server Backend (Authorization Code Flow)
我正在我的 JavaScript 网络应用程序中实施 Google 身份验证。我想使用 here.
中描述的身份验证代码流程
我想做的是...
- 用户点击一个按钮并显示同意屏幕
- 他点击"allow"我取回授权码
- 我将授权码发送到我的休息后端,以便将授权码交换到
access_token
前两个部分按预期工作得很好,但我无法让第 3 个部分工作。
我从后端调用 https://www.googleapis.com/oauth2/v3/token
,发布 code
、client_id
、client_secret
、redirect_uri
和 grant_type
(authorization_code)。这很好用,我用 fiddler(一种网络调试工具)检查了它。但是我总是得到 unauthorized_client
作为结果。
有什么想法吗?
经过大量测试和阅读,我终于明白了。
- 即使我执行 POST 请求以在我的后端获取访问令牌,我也需要传入参数(client_id、client_secret 等...)查询字符串不是正文。
- 我需要在两个请求中提供相同的 redirect_uri(获取代码和获取 access_token)
现在效果很好。
我正在我的 JavaScript 网络应用程序中实施 Google 身份验证。我想使用 here.
中描述的身份验证代码流程我想做的是...
- 用户点击一个按钮并显示同意屏幕
- 他点击"allow"我取回授权码
- 我将授权码发送到我的休息后端,以便将授权码交换到
access_token
前两个部分按预期工作得很好,但我无法让第 3 个部分工作。
我从后端调用 https://www.googleapis.com/oauth2/v3/token
,发布 code
、client_id
、client_secret
、redirect_uri
和 grant_type
(authorization_code)。这很好用,我用 fiddler(一种网络调试工具)检查了它。但是我总是得到 unauthorized_client
作为结果。
有什么想法吗?
经过大量测试和阅读,我终于明白了。
- 即使我执行 POST 请求以在我的后端获取访问令牌,我也需要传入参数(client_id、client_secret 等...)查询字符串不是正文。
- 我需要在两个请求中提供相同的 redirect_uri(获取代码和获取 access_token)
现在效果很好。