适用版本:TinyTale 小程序 3.0.0 / TinyTale 配置插件 2.1.2。
本页说明当前客户端实际使用的主要接口与认证约定,方便维护和二次开发。完整字段以对应版本的 src/api/、src/types/tinytale.ts 和服务端实现为准,不能用旧版兼容接口推断新接口行为。
TinyTale 接口
以下路径统一使用前缀 /apis/tool.jiewen.run/v1alpha1。
POST /restrict-read/verification-code 当前用于广告验证码的能力不可用,返回 501 和 AD_VERIFICATION_UNAVAILABLE,不应作为可依赖的验证码来源。旧 baseCore 路径及 verify-openid 属于兼容内容,新集成应使用当前会话流程。
登录请求与会话
微信登录请求示例,code 必须由当前微信运行环境实时取得:
{
"code": "本次微信登录凭证",
"mode": "silent"
}
silent 只恢复已有绑定;wechat 表示用户主动微信登录,可在满足注册策略时创建账号。账号密码接口接收 username、password 和可选的 code。绑定接口接收 code,同时携带已登录用户的 Authorization。
登录结果包含 tokenValue、expiresAt、username、role、openid 和 wechatBound。tokenValue 已是完整的 Bearer tt_… 值,设置 Authorization 请求头时原样使用,不再追加第二个 Bearer。
const headers = {
Authorization: loginResult.tokenValue,
}
客户端按过期时间管理会话,当前实现会提前约 30 秒判定需要更新,并处理并发登录和退出后的旧响应。复用 sessionStore 和现有请求层,避免每个页面独立执行登录恢复。
服务端会重新读取 Halo 用户与角色,禁用账号或撤销权限不能仅靠旧 JWT 延续访问。前端 role 用于界面显示,不代替服务端鉴权。
Halo 与插件管理接口
这些接口不在 TinyTale 前缀下,均应按当前用户权限调用。
附件上传使用 multipart 文件请求,并按需传递 policyName、groupName。图库创建使用 Photo 资源结构;瞬间创建使用 Moment 资源结构。优先调用 src/api/console.ts 的封装,保留上传和内容创建分步失败时的处理。
友链申请由 /apis/api.link.halo.run/v1alpha1/link-applications 提供,验证码为其 /captcha 子路径。它们依赖链接插件的实际能力,不能当作 TinyTale 核心插件始终提供的接口。
阅读凭证与错误处理
图库、瞬间访问密码放入 X-TinyTale-Access-Password 请求头,不写入分享 URL。Tools 专用集成令牌保留在服务端,客户端只提交当前流程需要的用户输入或阅读凭证。
文章接口返回经过限制处理的内容和状态,前端依据服务端结果显示正文与受限区域。不要只隐藏按钮而仍向游客获取完整受限内容。
401 优先按会话失效处理,403 检查权限或明确错误码,429 按服务端提示等待。网络异常或一般 403 不应触发无限自动登录;可能已经写入成功的发布请求,应先确认结果再重试。
调试日志保留路径、状态码和错误码,隐藏完整会话、密码、code、邮箱、Cookie 和服务端令牌。