gpt4 book ai didi

asp.net-mvc - 如何使用 Microsoft.AspNetCore.Authentication.Google 强制 HTTPS 回调?

转载 作者:行者123 更新时间:2023-12-04 23:40:50 25 4
gpt4 key购买 nike

我正在创建一个带有 Google 身份验证的 AspNetCore 应用程序。我正在 Ubuntu 服务器上的 nginx 反向代理后面部署这个应用程序。几乎一切正常,但我在使用回调 url 时遇到问题。

在 Google 开发者控制台中,我有 http://localhost:5000/signin-google设置为授权的重定向 URI。这按预期工作,并允许我在从我的工作站运行时使用 Google 身份验证。

对于生产,我有 https://myserver/signin-google设置为授权的重定向 URI。但是,当我尝试使用它时,我从accounts.google.com 收到一个错误http://myserver/signin-google (注意缺少的 s)未被授权。确实如此;它不应该被授权,我的服务器甚至不响应端口 80 请求。

如何告诉身份验证中间件我需要它为回调 URL 使用 HTTPS?

最佳答案

我终于弄明白了。

第 1 步:确保 Nginx 正在发送必要的转发 header ,例如:

server {
# other stuff ...
location / {
# other stuff ...
proxy_set_header X-Forwarded-Proto $scheme;
# you could also just hardcode this to https if you only accept https
}
}

第 2 步:默认情况下,AspNetCore 将忽略这些 header 。安装处理它的中间件:
PM> Install-Package Microsoft.AspNetCore.HttpOverrides

第 3 步:在您的 Configure 中功能,应用中间件。
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedProto
});

这应该正确更改 Context.Request.Scheme值为https,这将导致认证中间件生成正确的 redirect_uri .

关于asp.net-mvc - 如何使用 Microsoft.AspNetCore.Authentication.Google 强制 HTTPS 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38153044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com