簡體   English   中英

錯誤必須提供“ClientId”選項。 構建泊塢窗圖像時

[英]Error The 'ClientId' option must be provided. When building a docker image

我已經開始了一個新的.net核心項目,我將其配置為使用Google+ Api進行身份驗證。 我的客戶端ID和密碼使用dotnet用戶密鑰存儲。 當我建立我的碼頭圖像時,我得到了

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

我知道這是因為我的秘密沒有提供給圖像。 我想知道的是如何在不將它們提交到存儲庫的情況下提供我的Id和Secret密鑰,並仍在本地運行我的圖像。

我想當我將它部署到服務器時,我可以將它們作為Env變量的一部分,我想我也可以在本地做到這一點,只是想知道是否有其他人有這個可能比我更優雅的解決方案。

我找不到其他人如何做到這一點的太多信息。

首先,秘密不是您應該用於部署的。 通過幫助防止敏感數據存儲在代碼中/檢查到源代碼管理中,可以在開發過程中保護安全存儲的秘密。 請參閱相關問題UserSecrets如何在雲中工作?

你是對的,你應該使用環境變量代替或替代一些外部設置存儲,如DB。

要添加Google+身份驗證,您可以查看此指南

在startup.cs中添加此代碼段

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

在appsettings.json中添加此行

"Authentication": {
    "Google": {
        "ClientId": "ID FROM GOOGLE API",
        "ClientSecret": "SECRET FROM GOOGLE API"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM