问题描述
我有一个使用 Angular 的项目的前端部分,我正在尝试找出如何在生产环境 (Heroku) 中正确隐藏 API 密钥。
我需要在本地和生产环境之间更改两个变量,即后端 URL 和 API 密钥。 我已经使用 environment.prod.ts 和 environment.ts 文件来管理切换 URL,并试图了解如何对我想隐藏的 API_KEY 执行相同的操作。
到目前为止我是这样制作的(它适用于 URL)
environment.prod.ts
import {openchargemaps} from './openchargemaps.environment';
export const environment = {
production: false,baseUrl: 'http://localhost:8080/',...openchargemaps
};
environment.prod.ts
export const environment = {
production: true,baseUrl: 'https://MYBACKENDBUILD.herokuapp.com/',openchargemaps: {
API_KEY: '',}
};
openchargemaps.environment.ts(未推送到 REPO/HEROKU,仅用于本地环境)
export const openchargemaps = {
openchargemaps: {
API_KEY: 'XXXX-XXXX-XXXX-XXXX-XXXXXXXX'
};
对于生产,我在 heroku 上创建了环境变量: OPENCHARGEMAPS_API_KEY : XXXX-XXXX-XXXX-XXXXXXXXXXX
最后我以这种方式将其导入到我的组件中:
import {environment} from '../../environments/environment';
baseUrl = environment.baseUrl + 'ev/v1/auth/users/';
APIKey = environment.openchargemaps.API_KEY;
它适用于 URL,但不适用于 api 密钥。
我做错了什么,我该如何让它发挥作用?
For info this is my version of Angular :
ng --version
Angular CLI: 10.1.7
Node: 14.15.0
OS: win32 x64
Angular: 10.1.6
... animations,common,compiler,compiler-cli,core,forms
... platform-browser,platform-browser-dynamic,router
Ivy Workspace: Yes
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1001.7
@angular-devkit/build-angular 0.1001.7
@angular-devkit/core 10.1.7
@angular-devkit/schematics 10.1.7
@angular/cli 10.1.7
@angular/google-maps 11.1.0
@schematics/angular 10.1.7
@schematics/update 0.1001.7
rxjs 6.6.3
typescript 4.0.5
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)