如何使用 Angular 8/9 隐藏 API 密钥? [复制]

Posted

技术标签:

【中文标题】如何使用 Angular 8/9 隐藏 API 密钥? [复制]【英文标题】:How to hide API Keys with Angular 8/9? [duplicate] 【发布时间】:2021-02-17 01:20:24 【问题描述】:

我正在尝试调用 Firebase API。要调用此 API,我们需要指定用户配置密钥。如何在我的代码中隐藏这个键?我不知道该怎么做。

如果我使用 environment.ts 文件,在构建之后,这些键会暴露在 main.js 文件中。

ma​​in.js Keys Exposed

有什么办法可以避免这些key在main.js文件中暴露?

【问题讨论】:

这能回答你的问题吗? Angular 6, should I put secret environment variables in environment.ts file? 您无法获取 Firebase 配置数据 - 这是您的客户端应用访问 Firebase 所需的公共信息。 【参考方案1】:

Firebase 的设计使您不必隐藏这些键。

请参考文档here并摘录如下:

与通常使用 API 密钥的方式不同,Firebase 服务的 API 密钥不用于控制对后端资源的访问;这只能通过 Firebase 安全规则来完成。通常,您需要严格保护 API 密钥(例如,通过使用保管库服务或将密钥设置为环境变量);但是,Firebase 服务的 API 密钥可以包含在代码或签入的配置文件中。

【讨论】:

以上是关于如何使用 Angular 8/9 隐藏 API 密钥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

隐藏来自浏览器开发者工具网络的 Angular API 调用

Android Management API - Kiosk 模式下的单个应用程序 - 如何隐藏状态和导航栏?

在 Kendo UI Chart Angular 2 中隐藏网格线

如何使用隐藏列订购数据表

如何使用 Spring Boot 和 Angular 应用程序隐藏授权标头

如何根据用户角色Angular 4显示/隐藏元素