4: 凭证和保护
Phlo WhatsApp 触及一个真实的电话号码和一个真实的账户会话。整个平台的规则很简单:绝对不在代码库中存储任何秘密和号码。
4.1: 秘密的栖息地
security/creds 按顺序从 data/creds.ini 和环境变量解析凭据,并将它们包装起来,以防止意外打印:
[whatsapp]
url = http://127.0.0.1:8081
secret = a-long-random-shared-secret
prop endpoint => (string)(%creds->whatsapp?->url ?? '')
prop secret => (string)(%creds->whatsapp?->secret ?? '')
相同的值也可以来自 PHLO__whatsapp__url 和 PHLO__whatsapp__secret 环境变量,这就是您在生产中使用的。
4.2: 要在项目中使用 `.gitignore` 文件,您可以忽略以下内容: 1. **操作系统生成的文件**:例如,macOS 的 `.DS_Store` 文件和 Windows 的 `Thumbs.db` 文件。 2. **编译生成的文件**:如 `build/`、`dist/` 或其他编译输出目录。 3. **依赖项**:如果您使用的是包管理工具(如 npm、Composer),可以忽略 `node_modules/` 或 `vendor/` 目录。 4. **环境配置文件**:如 `.env` 文件,通常包含敏感信息。 5. **日志文件**:如 `*.log` 文件。 6. **临时文件**:如 `*.tmp` 或 `*.temp` 文件。 确保根据您的项目需求调整 `.gitignore` 文件,以避免将不必要的文件提交到版本控制中。
| 路径 | 原因 |
|---|---|
data/creds.ini |
网关 URL 和密钥 |
.env |
环境密钥 |
.wwebjs_auth/, .wwebjs_cache/ |
关联的 WhatsApp 会话 |
data/received.json, uploads |
实际数字和消息内容 |
提交一个 creds.ini.example,其中包含占位符,以便其他人知道该填写什么。
4.3: 没有凭据时处于无效状态
设计应用程序时确保没有凭据的安全性:如果密钥为空,发送将变为“未配置”的提示,且 webhook 将拒绝每个请求。演示在完全这种状态下公开部署,只有在您添加自己的 creds.ini 后才会变为在线状态。