Google OAuth 2.0 重定向 URI 缺少哈希 (#) 和路径

Google OAuth2.0 redirected URI missing Hash (#) and path

我正在使用 Google API 实现 OAuth 2.0,但是来自 Google 的重定向 URI 缺少散列 (#) 和路径。这导致我的解析失败。我正在为 Web 浏览器构建。

我对 Google 的请求 URI:
https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=http%3A%2F%2Flocalhost%3A4002%2Fsso-callback&response_type=token&state=C2ubRxTMwv&client_id=...

redirect_uri解码为http://localhost:4002/sso-callback

Google 的重定向 URI:
http://localhost:4002/state=C2ubRxTMwv&access_token=...
在使用 response_type=token

时缺少区分 OAuth 参数所需的 /sso-callback 路径和 #

Google API 设置:

不确定这是配置问题还是 Google 问题。

当我将此 URL 粘贴到 Chrome 中的地址栏时提交:

https://accounts.google.com/o/oauth2/auth?scope=https://mail.google.com/&response_type=token&client_id=111111-aaaaaaaa.apps.googleusercontent.com&state=1&redirect_uri=http://localhost:3000/callback

我收到重定向到

 http://localhost:3000/callback#state=1&access_token=ya29.A0ARrdaM-tPsT7jLIaCoVdhHo5vW71tYF1Z4ESfNNzNAh6SN7e_a4x24V0HVu4M427KF3bpWk8-Sm37oUxUHDpA-mMGJrAQPHgMlDA0suMVW2R0WBR_9vQiaPf8cMB8Tna8EH9wLSrm58PG3g30HJWUio1Ytyh&token_type=Bearer&expires_in=3599&scope=https://mail.google.com/

一些注意事项:Google 身份验证服务器似乎只使用 Google 控制台中配置的第一个重定向 URI。你的情况是

http://localhost:4002

尝试放置您想要的重定向 URI

http://localhost:4002/sso-callback 

在控制台的第一个位置。

原来有一个 SSR 重定向破坏了我不知道的网址。 Delta George 的回答让我尝试了其他几个让问题变得清晰的网址。