调试登录接口,返回里有个 token 字段,一长串看不懂的字符;转头看 AI 接口的文档,又说按 token 计费。同一个词,两拨人在说两件事,token是什么意思 得先分语境。

登录场景:一张临时通行证

账号密码验证通过后,服务器发回一段字符串,之后每次请求都把它带上,服务器校验签名就知道是谁在操作,不用反复传密码。这个字符串就是 token,常见格式是三段 Base64 用点号连接,里面装着用户标识、签发时间和过期时间。

它和早年的 session 是两种思路:session 数据放在服务器内存或缓存里,浏览器只拿一个编号;token 把数据连同签名一起发给客户端,服务器不存状态,多台机器做负载均衡时省事,所以前后端分离的项目里现在用得多。

它一般有有效期,过期就得刷新或重新登录。半夜接口突然集体返回 401,先别怀疑密码错了,多半是 token 过期了。前端通常把它存在 localStorage 或 cookie 里,属于敏感信息:别打印进日志、别在网址参数里裸传、别截图发群里,通行证泄露出去别人就能直接冒充你。

正式项目的做法一般是短有效期加刷新机制:主令牌几个小时就过期,另发一个长效的刷新凭证去换新令牌,就算泄露损失也有限。顺带分清两个状态码:401 是没登录或令牌过期,403 是登录了但没权限,排查时别混。

AI 场景:文本的计费单位

大模型不按字收费,按 token 算。文本先被切成一个个小片段,一个 token 大约对应一个英文单词的一小半,或者一两个汉字,不同模型切法不一样,具体换算以各家文档为准。上下文窗口的容量也是按它算的,参数里的 32K、128K 指的就是一次能装下多少,对话太长时最早的内容会被挤出去。

还有一个冷门语境

编译原理课上,词法分析产出的最小单元也叫 token,关键字、标识符、运算符都能算一个,跟登录和计费都没关系。

下次再遇到 token 相关的疑问,先看语境:聊接口和登录,想通行证;聊模型和账单,想文本切片。