参考资料

  1. 说明日志系统在记录 Guzzle 废弃警告时崩溃了,掩盖了真正的问题
  2. 报错很明确:8000 端口已被占用。先排查是谁占用了,再决定是杀掉还是换端口。
  3. Laravel Octane 与 Swoole 扩展的版本不兼容
  4. Fresns 基于 Swoole 的运行状态输出
  5. 端口还是被占用,但 PID 变了(从 244xx 变成了 261xx)。
  6. 针对 Fresns 的 PHP-FPM 调优
  7. Nginx 无法连接到 Octane 监听的端口
  8. Fresns 社区中用于解决 502 Bad Gateway 错误

Fresns 的请求头采用 X-Fresns-* 命名格式,主要用于身份认证和客户端信息传递

Fresns 的请求头采用 X-Fresns-* 命名格式,主要用于身份认证和客户端信息传递。

核心请求头一览

根据官方文档和源码,请求头分为以下几类:

必需参数(所有请求)

请求头说明
X-Fresns-App-Id应用密钥 ID,在控制面板“应用中心”获取
X-Fresns-Client-Platform-Id平台编号(数字),需与密钥平台匹配
X-Fresns-Client-Version客户端版本号,推荐语义化版本
X-Fresns-Signature签名,生成规则见官方文档
X-Fresns-Signature-Timestamp签名时间戳(Unix 时间,秒或毫秒均可)

认证参数(私有模式必需)

请求头说明
X-Fresns-Aid账号参数,留空视为未登录账号
X-Fresns-Aid-Token账号身份凭证,传 X-Fresns-Aid 时必传
X-Fresns-Uid用户参数,留空视为未登录用户
X-Fresns-Uid-Token用户身份凭证,传 X-Fresns-Uid 时必传

可选参数

请求头说明
X-Fresns-Client-Lang-Tag语言标签,留空则输出默认语言
X-Fresns-Client-TimezoneUTC 时区,留空则使用默认时区
X-Fresns-Client-Content-Format内容格式,传 html 时 Markdown 会转换为 HTML
X-Fresns-Client-Device-Info交互设备信息,压缩 Object 为字符串传参

签名涉及的参数

SignHelper 源码显示,签名计算包含以下请求头 :
X-Fresns-App-Id、X-Fresns-Client-Platform-Id、X-Fresns-Client-Version、X-Fresns-Aid、X-Fresns-Aid-Token、X-Fresns-Uid、X-Fresns-Uid-Token、X-Fresns-Signature-Timestamp。

回调场景的特殊用法

如果开发的是回调插件,URL Authorization 参数就是完整的 Headers 信息经过 Base64 和 URL 编码后的值 。插件收到回调后,需要解码还原这些 Headers,再用于验证或发起后续 API 请求。

作者:王壹杰
时间:2026-10-01 18:00:29
来源:https://fresns.ciilii.com/