如何解决Google OAuth2.0 访问权限
使用谷歌 oAuth2 时。我不断得到
Erreur 400 : redirect_uri_mismatch The redirect URI in the request,http://hostname/signin-google,does not match the ones authorized for the OAuth client. To update the authorized redirect URIs,visit:
使用 HTTP 访问。
但我使用 https 访问来访问 url。
我不知道为什么它通过 HTTP 而不是 HTTPS 重定向
.
对于我正在使用的身份验证
await HttpContext.ChallengeAsync("Google",new AuthenticationProperties() {RedirectUri = "/"})
-- 注意:当尝试在 GCP 接受的 redirect_uris 上使用 http 添加我的主机名时,它不接受 http,而只接受 HTTPS
非常感谢
解决方法
您应该将您自己的服务器/客户端应用程序的地址传递为 RedirectUri
,它可以处理 Google 的登录对话框的答案。该地址应该是一个完整的网址,而不仅仅是“/”,它必须在 Google 开发者控制台中注册,并且必须是带有 https://
前缀的网址。
您不能使用不安全的 http://
重定向地址实施 OAuth2,这会破坏所有安全性。
事实上,这是你公开你的应用程序的方式,它在参数中被接受。
对我来说,我使用 dockerfile 来公开我的应用程序,我曾经使用
Expose http://*:80
即使关联的域以 HTTPS 启动,在应用程序内部也始终是 HTTP 调用,因此所有重定向都是通过 http 协议完成的。
我将我的应用程序的公开方式从 http://:80 更改为 https://:443
在代码中,我使用 kestrel 启动应用程序,现在运行良好
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。