Google oauth2将请求从子域重定向到主域

问题描述 投票:0回答:1

我有一个域https://faduense.com,在该域中我已成功实现了使用护照通过google Oauth2登录。该应用程序是Mern应用程序,它通过Node中完成的API处理登录。

现在,由于该应用程序有点沉重,所以我想将我的应用程序移到已经在其子域中工作的子域https://app.faduense.com,它可以在自己的服务器上工作。

问题出在以下方面:我已经更改了后端和前端的所有设置,但是当我按下google登录时,它仍然会将我的请求发送到主域:https://faduense.com

我什至尝试通过Google控制台创建其他应用,并放置新的客户端和机密ID,但仍通过主域进行路由。

这些是我的设置:护照设置。

Passport settings

我的用户API路由转到https://app.faduense.com/api/users/

enter image description here

以及我在前端的弹出窗口看起来如下。enter image description here

最后,我的凭据如下所示:enter image description here

我不知所措。我所做的,

我尝试在Google控制台创建的主域应用中更改重定向uri,这给了redirect_uri_mismatch错误

我尝试将我的子域重定向uri添加到在Google控制台中创建的主域应用程序中,但没有执行任何操作。

我试图操纵通过浏览器地址栏发送的参数,但无济于事。

如果您转到https://app.faduense.com/login,然后单击通过google登录,则请求网址将发送以下网址:https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=https%3A%2F%2Ffaduense.com%2Fapi%2Fusers%2Fauth%2Fgoogle%2Fusuario&scope=profile%20email&client_id=54622388608-9ml71v7gsj9f2avru52hpgmh0auudbur.apps.googleusercontent.com

您可以看到redirect_uri显然缺少子域。我没有太多经验,我搜索了很多东西,但是我发现我唯一的出路是问一个有更多经验的人。有什么线索吗?谢谢

node.js express oauth-2.0 passport.js google-oauth2
1个回答
0
投票

最后我解决了。我不知道我是怎么做到的,但这就是我所做的:

  1. 首先,我在Google api控制台中删除了凭据。
  2. 然后我直接使用子域网址创建了新的凭据。
  3. 我更改了护照JS上的密码和客户ID;以及在前端更改我的网址。
  4. 在开发环境中进行测试,遇到redirect_uri错误,但是没关系,因为我使用的是本地主机,并且我的凭据已设置为最终的URL。
  5. 使用腻子进入我的EC2实例,我做了sudo systemctl stop nginx,以停止服务器。
  6. 我用新的密码从github提取了更新的存储库,并从新的凭据中获取了客户端ID。
  7. 在AWS面板上重新启动实例。

  8. 最后,我再次启动nginx,sudo systemctl启动nginx。

  9. 实时测试它及其工作。
© www.soinside.com 2019 - 2024. All rights reserved.