我启动了一个新的 .net 核心项目,并将其配置为使用 Google+ Api 进行身份验证。我的客户端 ID 和机密使用 dotnet 用户机密存储。当我构建我的 docker 镜像时,我得到
Unhandled Exception: System.ArgumentException: The 'ClientId' option must be provided.
Run Code Online (Sandbox Code Playgroud)
我知道这是因为我的秘密没有被提供给图像。我想知道的是如何在不将它们提交到存储库的情况下提供我的 Id 和密钥,并且仍然在本地运行我的图像。
我在想,当我将它部署到服务器时,我可以将它们作为 Env 变量的一部分,我想我也可以在本地做到这一点,只是想知道是否有其他人对此有一个可能比我更优雅的解决方案。
我只是找不到关于其他人如何做的太多信息。
Has*_*man 12
要添加 Google+ 身份验证,您可以查看本指南。
在 startup.cs 中添加此代码段
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = Configuration["Authentication:Google:ClientId"];
googleOptions.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
});
Run Code Online (Sandbox Code Playgroud)
在 appsettings.json 中添加这一行
"Authentication": {
"Google": {
"ClientId": "ID FROM GOOGLE API",
"ClientSecret": "SECRET FROM GOOGLE API"
}
Run Code Online (Sandbox Code Playgroud)
首先,秘密不是您应该用于部署的。通过帮助防止敏感数据存储在代码中/签入源代码控制,在开发过程中存在安全存储的秘密。请参阅相关问题UserSecrets 如何在云中工作?
您是对的,您应该使用环境变量来代替或替代某些外部设置存储,例如 DB。
| 归档时间: |
|
| 查看次数: |
10953 次 |
| 最近记录: |