私はASP.NET Core 2
とNginx
でWebサイトを開発しています。私はGoogle認証を追加したい。RedirectUri、Nginx、ASP.NEtコアを変更
サーバはLinuxで、Nginxを実行しており、SSLが有効です。 ASP.NETはhttp://localhost:5000/
で実行され、Nginxはリバースプロキシを使用してアクセスします。
問題は、Googleにアクセスしようとすると、ASP.NETがhttpで動作するため、URLスキーマはhttp
です。 https
がGoogle側で定義されているため、「エラー:redirect_uri_mismatch」というエラーが表示されます。
私は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);
};
});