Skip to content

Repository files navigation

Tansr Token Server

为 AI 应用提供短期令牌,把长期 AppKey 留在服务端。 可独立运行的 Node.js / Express 示例,演示登录、按用户换票和用量自查。

English · 官网与应用控制台 · 技术文档 · MIT

你可以用它做什么

为嵌入 Agent SDK 的 Electron 或 Node 产品接入用户身份:服务器从已验证登录态确定 endUserId,向平台换取短期令牌,客户端再使用 SDK。示例包含平台请求签名、失败处理及用户用量代理,运行依赖只有 Express,方便替换为自己的账号系统。

flowchart LR
  E[Electron / Node 应用] -->|登录态| T[Token Server]
  T -->|AppKey 与签名| P[Tansr 平台]
  P -->|短期令牌| T
  T -->|短期令牌| E
  E -->|SDK 请求| P
Loading

快速开始

需要 Node.js 22.19+ 和 npm。先在 Tansr 创建应用并取得 App 凭据。

git clone https://github.com/tansrai/token-server.git
cd token-server
npm ci
cp .env.example .env

PowerShell 使用 Copy-Item .env.example .env。仅首次复制,避免覆盖已有配置。在私有 .env 填写 TANSR_APP_KEY_IDTANSR_APP_KEY;保留 TANSR_API_BASE=https://api.tansr.com,然后:

npm start

默认地址为 http://127.0.0.1:8788。在配套 electron-demo 中设置同样的 TANSR_TOKEN_SERVER,即可体验完整桌面链路。两个仓库只通过 HTTP 通信,无须相邻存放。

演示账号:alice / alice123bob / bob123。演示用户与登录态保存在内存中,重启后登录失效。产品部署前应替换登录桩,接入自有 Cookie / JWT / OAuth,并补齐 HTTPS、登录限流、会话过期与撤销。

配置 含义
TANSR_APP_KEY_ID / TANSR_APP_KEY 必填,仅保存在服务端
TANSR_API_BASE 模板为 https://api.tansr.com
HOST / PORT 默认 127.0.0.1 / 8788
TOKEN_TTL_SECONDS 默认 3600,平台允许 60–86400 秒

启动器按自身目录读取 .env,支持键的文件值优先于继承变量。真实 .env 已被 Git 忽略。若与移动端 serve 同时运行,修改其中一个服务的端口及配对客户端配置。

接口与代码导航

接口 作用
POST /api/login 用户名与密码换取 Demo 登录 sessionId
POST /api/token 携带 x-demo-session 换取 { token, expiresAt }
GET /api/my-usage?window=7d 携带同一登录态查询当前用户的 Token 用量

阅读 协议说明,再看 server.mjs 中的登录、签名与换票实现。登录 sessionId 与 Agent 会话 ID 不同;本服务不存聊天历史,也不是移动端 Demo 的 /login / /refresh 服务。

npm run check 执行现有 JavaScript 语法检查。node launch.mjs --check-config 检查配置读取,不输出值。本包没有第一方 SDK 依赖,npm run demo:update 不会升级 Express;npm ci 复现已锁依赖。

文档与配套示例

AI 编程助手请先读本地协议和手册,再核对实际版本与官方文档;不要混用本服务 /api/token、平台 /v1/app-tokens 和移动端 Bearer 票据。

一起完善

欢迎提交可复现 Issue、文档改进、登录适配与用量展示示例。如果它帮你跑通集成,欢迎 Star 或分享你构建的产品。贡献步骤见 CONTRIBUTING.md,敏感问题按 SECURITY.md 私下报告。

示例源码采用 MIT,第三方依赖保留原许可证。平台账号、模型调用和托管服务按适用条款收费,MIT 不表示免费用量。见 NOTICE.md

About

A minimal Node.js token server for Tansr AI apps: verified user identity, short-lived tokens and usage queries.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages