错误必须提供“ClientId”选项。构建泊坞窗图像时

问题描述 投票:2回答:2

我已经开始了一个新的.net核心项目,我将其配置为使用Google+ Api进行身份验证。我的客户端ID和密码使用dotnet用户密钥存储。当我建立我的码头图像时,我得到了

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

我知道这是因为我的秘密没有提供给图像。我想知道的是如何在不将它们提交到存储库的情况下提供我的Id和Secret密钥,并仍在本地运行我的图像。

我想当我将它部署到服务器时,我可以将它们作为Env变量的一部分,我想我也可以在本地做到这一点,只是想知道是否有其他人有这个可能比我更优雅的解决方案。

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

docker .net-core
2个回答
3
投票

首先,秘密不是您应该用于部署的。通过帮助防止敏感数据存储在代码中/检查到源代码管理中,可以在开发过程中保护安全存储的秘密。看相关问题How do UserSecrets work in the Cloud?

你是对的,你应该使用环境变量代替或替代一些外部设置存储,如DB。


3
投票

要添加Google+身份验证,您可以看到此guide

在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"
}
© www.soinside.com 2019 - 2024. All rights reserved.