gpt4 book ai didi

c# - 更改 RedirectUri、Nginx 和 ASP.NEt Core

转载 作者:行者123 更新时间:2023-12-05 08:08:45 26 4
gpt4 key购买 nike

我正在使用 ASP.NET Core 2Nginx 开发一个网站。我想添加 Google 身份验证。

服务器是 Linux,运行 Nginx,启用 SSL。 ASP.NET运行在http://localhost:5000/上,Nginx使用反向代理访问。

问题是,当我尝试访问 Google 时,URL 模式是 http,因为 ASP.NET 在 http 中运行。我收到错误提示“错误:redirect_uri_mismatch”,因为 https 是在 Google 端定义的。

我尝试了 OnRedirectToAuthorizationEndpoint 事件并更改了 RedirectUri 但没有成功。

我也尝试过将 CallbackPath 更改为完整的 URL,但据说 URL 必须以 / 开头;它需要相对路径。

我使用的包是:Microsoft.AspNetCore.Authentication.Google (2.0.0)

有什么建议吗?

服务代码是:

services.AddAuthentication()
.AddGoogle(options =>
{
options.ClientId = Configuration["Authentication:Google:ClientId"];
options.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
options.CallbackPath = "/Login/GoogleCallback";
options.Events.OnRedirectToAuthorizationEndpoint += context =>
{
context.Properties.RedirectUri = context.Properties.RedirectUri.Replace("http://", "https://");
return Task.FromResult(0);
};
});

最佳答案

将这些添加到配置文件 /etc/nginx/sites-available/default 后,它开始工作。

proxy_set_header  X-Real-IP          $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

关于c# - 更改 RedirectUri、Nginx 和 ASP.NEt Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923776/

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