我正在尝试将一个基于angular的应用程序部署到bluemix,并且我想使用系统变量(process.env)。不知怎么的,这不起作用,进程只包含title=browser和一个空的环境对象。我把它们设置在环境上,但我不能让dotenv工作。这个应用是基于angular-cli的。
有人知道如何使用或不使用dotenv等安全地存储api密钥吗?
编辑: app.module中的一些代码。我也在main.ts文件中尝试过,但无济于事。
export function restServiceLoader(logger: NGXLogger, http: HttpClient): any {
logger.debug('test is ' + process.env.TEST);
return new ApiDataService(logger, http);
}发布于 2018-07-06 14:28:34
您在Bluemix上设置的环境变量用于托管Angular应用程序的容器。您尝试在Angular应用程序中读取的环境变量适用于浏览器的环境,例如Angular应用程序正在运行的环境。
您可以使用一个类来将您的配置保存为常量,就像John和解释过的here所建议的那样,或者您也可以调用您的后端来获取仅保存在后端的配置。
在设计方面,敏感配置不应该保存在前端/Angular应用程序中,例如浏览器环境中,因为它在那里很容易受到攻击,并且您几乎无法控制如何保护和维护它。
发布于 2018-01-12 16:20:22
您可以使用位于src/environments文件夹下的environment.ts文件,该文件如下所示:
export const environment = {
production: false,
api:'http://someApi.com'
};然后在您的组件/服务中使用环境:
import {environment} from '../environments/environment';并像这样使用它:在该组件或服务中的任何位置使用environment.api。
我不会在环境文件中存储私钥,只会存储公钥。
https://stackoverflow.com/questions/48221718
复制相似问题