pnodev/pno-js-globals

将公共环境变量暴露给JavaScript

维护者

详细信息

gitlab.pno.dev/typo3/pno-js-globals

安装: 60

依赖项: 1

建议者: 0

安全: 0

类型:typo3-cms-extension

1.1.0 2024-09-25 08:57 UTC

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