Google oauth2 将请求从子域重定向到主域
Google oauth2 redirecting requests from subdomain to main domain
我有一个域 https://faduense.com,我已在其中使用护照成功实现了 google Oauth2 登录。该应用程序是一个 Mern 应用程序,它通过在 Node 中完成的 API 处理登录。
现在,由于应用程序有点重,我想将我的应用程序移动到子域,https://app.faduense.com,我已经这样做了,它在自己的服务器上运行。
问题如下:我已经更改了后端和前端的所有设置,但是当我使用 google 按下登录时,它仍然将我的请求发送到主域:https://faduense.com
我什至尝试通过 google 控制台创建一个不同的应用程序,并放置一个新的客户端和秘密 ID,但它仍然通过主域路由它。
这些是我的设置:
护照设置。
我的用户 API 路由到 https://app.faduense.com/api/users/
我在前端的弹出窗口如下所示。
最后我的凭证如下所示:
我词穷了。
我做了什么,
我尝试在 google 控制台创建的主域应用程序中更改我的重定向 uri,这给出了 redirect_uri_mismatch 错误
我尝试将我的子域重定向 uri 添加到在 google 控制台创建的主域应用程序,但没有任何作用。
我试图操纵通过浏览器地址栏发送的参数,但无济于事。
如果你去https://app.faduense.com/login and click on login via google, the request url sends the following url: 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 显然缺少子域。
我没有太多经验,我搜索了很多,但我看到我唯一的出路就是问有更多经验的人。
有什么线索吗?
谢谢
终于解决了
我不知道我是怎么做到的,但我就是这样做的:
- 首先,我删除了 google api 控制台中的凭据。
- 然后我直接用我的子域 url 创建了新的凭据。
- 我更改了护照 JS 上的密码和客户 ID;以及在前端更改我的 url。
- 在开发环境中测试,出现 redirect_uri 错误,但没关系,因为我使用的是本地主机,并且我的凭据是用我的最终 url.
设置的
- 使用 putty 进入我的 EC2 实例,我执行了 sudo systemctl stop nginx 以停止服务器。
- 我使用新密码从 github 中提取更新后的存储库,并从新凭据中提取客户端 ID。
在 AWS 面板上重新启动实例。
终于又启动了nginx,sudo systemctl start nginx。
- 实时测试它的工作情况。
我有一个域 https://faduense.com,我已在其中使用护照成功实现了 google Oauth2 登录。该应用程序是一个 Mern 应用程序,它通过在 Node 中完成的 API 处理登录。
现在,由于应用程序有点重,我想将我的应用程序移动到子域,https://app.faduense.com,我已经这样做了,它在自己的服务器上运行。
问题如下:我已经更改了后端和前端的所有设置,但是当我使用 google 按下登录时,它仍然将我的请求发送到主域:https://faduense.com
我什至尝试通过 google 控制台创建一个不同的应用程序,并放置一个新的客户端和秘密 ID,但它仍然通过主域路由它。
这些是我的设置:
护照设置。
我的用户 API 路由到 https://app.faduense.com/api/users/
我在前端的弹出窗口如下所示。
最后我的凭证如下所示:
我词穷了。 我做了什么,
我尝试在 google 控制台创建的主域应用程序中更改我的重定向 uri,这给出了 redirect_uri_mismatch 错误
我尝试将我的子域重定向 uri 添加到在 google 控制台创建的主域应用程序,但没有任何作用。
我试图操纵通过浏览器地址栏发送的参数,但无济于事。
如果你去https://app.faduense.com/login and click on login via google, the request url sends the following url: 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 显然缺少子域。 我没有太多经验,我搜索了很多,但我看到我唯一的出路就是问有更多经验的人。 有什么线索吗? 谢谢
终于解决了
我不知道我是怎么做到的,但我就是这样做的:
- 首先,我删除了 google api 控制台中的凭据。
- 然后我直接用我的子域 url 创建了新的凭据。
- 我更改了护照 JS 上的密码和客户 ID;以及在前端更改我的 url。
- 在开发环境中测试,出现 redirect_uri 错误,但没关系,因为我使用的是本地主机,并且我的凭据是用我的最终 url. 设置的
- 使用 putty 进入我的 EC2 实例,我执行了 sudo systemctl stop nginx 以停止服务器。
- 我使用新密码从 github 中提取更新后的存储库,并从新凭据中提取客户端 ID。
在 AWS 面板上重新启动实例。
终于又启动了nginx,sudo systemctl start nginx。
- 实时测试它的工作情况。