2017-01-08 8 views
2

私は新しい.netコアプロジェクトを開始しました。認証のためにGoogle+ APIを使用するように設定しました。 My Client IdとSecretは、ドットネットのユーザーシークレットを使用して保存されます。私がドッカーの画像を作成すると、私は得るエラー 'ClientId'オプションを指定する必要があります。ドッカー画像を作成するとき

Unhandled Exception: System.ArgumentException: The 'ClientId' option must be provided. 

これは私の秘密が画像に提供されていないためです。私が知りたいことは、IDと秘密鍵をリポジトリにコミットせずにローカルに引き続き実行できることです。

私はサーバーに展開するときにEnv変数の一部として使用できると思っていましたが、私はそれをローカルでもできると思います。他の誰かがこれよりも優雅かもしれない鉱山。

私は他の人たちがこれをやっている様子について多くの情報を見つけることができません。

答えて

3

まず、秘密は展開に使用するものではありません。機密データがコードに保存されたり、ソース管理にチェックインされたりするのを防ぐのに役立ちます。関連する質問を参照してくださいHow do UserSecrets work in the Cloud?

あなたは環境変数をDBのような代わりに、または代わりに、DBのようないくつかの外部設定ストレージとして使うべきです。

0

Google+認証を追加するには、guideが表示されます。

appsettings.json

"Authentication": { 
    "Google": { 
     "ClientId": "ID FROM GOOGLE API", 
     "ClientSecret": "SECRET FROM GOOGLE API" 
} 
にこの行を追加します。startup.csに

services.AddAuthentication().AddGoogle(googleOptions => 
{ 
    googleOptions.ClientId = Configuration["Authentication:Google:ClientId"]; 
    googleOptions.ClientSecret = Configuration["Authentication:Google:ClientSecret"]; 
}); 

このスニペットを追加します。

関連する問題