2017-08-28 6 views
1

私はASP.NET Core 2Nginxで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); 
     }; 
    }); 

答えて

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; 
関連する問題