ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

YOURLS API实战:6个核心Action、HMAC签名认证与公开API搭建

YOURLS API实战:6个核心Action、HMAC签名认证与公开API搭建 YOURLS API实战6个核心Action、HMAC签名认证与公开API搭建【免费下载链接】YOURLS The standard, self hosted, powerful and customizable, URL shortener in PHP项目地址: https://gitcode.com/gh_mirrors/yo/YOURLSYOURLS API 是这款自托管 URL 缩短服务的核心能力支持短链接创建、数据统计、链接展开等 6 个内置 Action并提供用户名密码与 HMAC 签名两种认证方式。本文带你零基础上手 YOURLS API 实战从最简短链接请求到安全签名调用再到一键搭建无需登录的公开 API全部讲透。一、认识 YOURLS API 入口YOURLS 的 API 由根目录下的 yourls-api.php 统一处理。所有请求都指向这一个文件通过action参数区分要执行的操作请求地址形如https://你的域名/yourls-api.php?actionshorturlurl...支持 GET 与 POST输出格式通过format参数指定可选json、xml、simple纯文本默认取短链接三种由 includes/functions-api.php 中的yourls_api_output()函数统一封装输出。二、6 个核心 Action 逐个实战API 内置 Action 在 yourls-api.php 中注册共 6 个Action功能关键参数shorturl创建短链接url、keyword可选、title可选expand展开短链为长链接shorturlurl-stats查询单条短链点击统计shorturlstats获取 Top / 最少点击 / 最近 / 随机列表filter、limit、startdb-stats全站短链与点击总数无version查看 YOURLS 版本db1附带数据库版本1. shorturl最常用的创建短链/yourls-api.php?actionshorturlurlhttps://example.compage2formatjson返回 JSON 中包含keyword、shorturl、statusCode等字段加formatsimple则只返回短链本身方便直接复制。指定keyword可以自定义短链后缀例如actionshorturlurl...keywordhello。2. expand反向解析短链/yourls-api.php?actionexpandshorturlhelloformatjson短链可以传完整地址如https://ozh.in/abc也可以只传关键词abc服务端会自动识别逻辑见 includes/functions-api.php 中的yourls_api_expand()。3. stats / db-stats / url-stats数据统计三件套statsfilter支持top点击最多、bottom、last最新、rand配合limit与start分页url-stats查询某条短链的点击数、最近访问时间等db-stats返回全站短链总数与点击总数适合做仪表盘。统计功能同样依赖 includes/functions-shorturls.php 中的查询实现返回结果建议用json或xml格式解析。4. version快速探活不带任何业务参数的actionversion是验证 API 是否可用的最好方式加db1还能拿到数据库结构版本号。远程调用参考如果你的脚本不在 YOURLS 同一台服务器上可以直接参考仓库自带的示例文件 sample-remote-api-call.txt重命名为.php即可运行其中演示了如何用 cURL 以 POST 方式携带username、password完成一次短链创建。三、认证方式从用户名密码到 HMAC 签名方式一用户名 密码最直观的方式请求中带上username与password即可通过鉴权见 includes/functions-auth.php 的校验逻辑。简单但凭据会出现在请求里适合内网或测试场景。方式二signature 签名认证生产环境推荐使用签名方式YOURLS 的签名机制基于 HMAC哈希消息认证码每个用户拥有唯一签名服务端用站点密钥对api:用户名做 HMAC 哈希截取前 32 位长度可用auth_signature_length过滤器调整即yourls_auth_signature()见 includes/functions-auth.php请求携带signature参数服务端遍历已注册用户用hash_equals()做时序安全比对命中即放行时效签名timestamped signature进阶做法是再传timestamp参数把sha256(timestamp signature)作为最终signature值提交。默认哈希算法为 sha256允许 sha384 / sha512且时间戳偏差必须在 nonce 有效期内可有效防重放。这种方式的好处是调用方只需持有签名可安全存储在服务端无需在请求中暴露密码且签名可随时更换。相关测试用例参考 tests/tests/auth/SigTest.php。 安全提示私有模式下未带认证信息的 API 请求会被直接拒绝YOURLS_PRIVATE与YOURLS_USER等配置项定义在你的config/yourls-config.php中。四、两行代码搭建公开 API很多场景论坛短链插件、博客编辑器等希望 API 无需登录即可创建短链。YOURLS 官方提供了 sample-public-api.txt 模板做法非常简单把 sample-public-api.txt 复制一份重命名为api.php放在与yourls-api.php同目录文件内容只有两行关键代码define(YOURLS_PRIVATE, false);后require主 API 文件。这样即使你的安装是私有模式后台禁止匿名访问api.php也能提供公开的短链创建入口。使用前请评估风险公开 API 意味着任何人都能创建短链建议配合插件做频率限制或来源校验。五、动手清单与常见问题✅快速自检清单用actionversionformatjson确认 API 通不通用actionshorturlformatsimple拿到第一条短链生产调用改走signature认证需要免登录集成时部署公开api.php用actiondb-stats观察整体数据增长。❓常见问题报错 400 Unknown or missing actionaction参数缺失或拼写错误对照第二节的 6 个 Action 表检查返回 404 类错误expand/url-stats的短链不存在或shorturl未传url参数stats 用 simple 格式没有数据统计类 Action 必须使用json或xml格式签名一直不通过确认时间戳未过期、哈希算法在允许列表内默认 sha256并检查客户端与服务端时钟是否同步。想继续深入可以从 includes/functions-api.php 阅读 Action 封装逻辑或参考 sample-public-front-page.txt 与 sample-remote-api-call.txt 两个官方示例把 YOURLS 变成你整个技术栈里的链接枢纽。【免费下载链接】YOURLS The standard, self hosted, powerful and customizable, URL shortener in PHP项目地址: https://gitcode.com/gh_mirrors/yo/YOURLS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表