pnodev / pno-js-globals
将公共环境变量暴露给JavaScript
1.1.0
2024-09-25 08:57 UTC
Requires
- typo3/cms-core: ^12.0 || ^13.0
This package is not auto-updated.
Last update: 2024-09-25 09:00:54 UTC
README
这是一个简单的扩展,可以将环境变量暴露给您的JavaScript代码。
关于安全性的说明
意外暴露敏感信息是一个很大的安全风险。您肯定不希望秘密信息暴露给客户端。然而,有很多情况需要将特定环境信息暴露给JavaScript(例如Sentry令牌、API端点等)。为了避免暴露那些不应该公开访问的变量,此扩展仅暴露以PUBLIC_
为前缀的环境变量。这样,您就有了一个非常明确的指示,表明变量是安全的,可以暴露。
它是如何工作的?
按您习惯的方式定义环境变量。我们建议使用与dotenv-connector(由Helmut Hummel提供)结合使用的.env文件。
但您可以选择任何您喜欢的方法。只需确保所需的env变量被暴露给PHP。所有以PUBLIC_
为前缀定义的变量都将暴露给您的JavaScript,并在window._gloabls
下提供。
示例
# file: .env
API_KEY=a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1d # -> this will not be exposed
PUBLIC_SENTRY_DSN=https://XXXXXXXXXXXXX.ingest.us.sentry.io/XXXXXXX
// file: main.js
import * as Sentry from "@sentry/browser";
Sentry.init({
dsn: window._globals.PUBLIC_SENTRY_DSN,
// [...]
});
安装
通过composer安装扩展
composer req pnodev/pno-js-globals
将TypoScript导入您的站点包
// file: setup.typoscript
@import 'EXT:pno_js_globals/Configuration/TypoScript/setup.typoscript'
路线图/计划中的功能
- 支持TypeScript