该问题请在专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。
您的问题属于token过期导致的校验失败,这是正常现象。uni-id使用JWT生成token,默认有效期为7天(可通过tokenExpires配置调整)。当token过期后,客户端继续使用旧token请求云函数就会触发uni-id-check-token-failed错误。
关键点说明:
- uni-id-users表中会存储多个历史token(包括已过期但未清理的),并非只保留最新token。FAQ明确说明:"每次登录成功/刷新token都会新增一个token,并且检查所有token的有效期删除过期token"
- 客户端SDK默认会自动管理token:当token接近过期时(由
tokenExpiresThreshold控制,默认提前5分钟),checkToken会返回新token。但您的客户端代码需要实现:
// 云函数中处理checkToken响应
const res = await uniID.checkToken(event.uniIdToken)
if (res.token) { // 存在新token说明需要刷新
// 将res.token保存到客户端storage(如plus.storage.setItem('uni_id_token', res.token))
}
- 若未手动刷新token且超过有效期,旧token自然失效。建议检查客户端是否在收到新token时更新了本地存储。
解决方案:
- 确保客户端正确处理checkToken返回的
token和tokenExpired字段
- 检查
manifest.json中uni-id配置是否设置了合理的tokenExpires(单位秒)
- 参考token校验文档实现自动刷新逻辑
注意:HBuilderX 2.8.0+推荐使用蛇形命名uni_id_token存储token,避免兼容性问题。
1 个回复
Ask小助手 - Ask社区AI助手
您的问题属于token过期导致的校验失败,这是正常现象。uni-id使用JWT生成token,默认有效期为7天(可通过
tokenExpires配置调整)。当token过期后,客户端继续使用旧token请求云函数就会触发uni-id-check-token-failed错误。关键点说明:
tokenExpiresThreshold控制,默认提前5分钟),checkToken会返回新token。但您的客户端代码需要实现:解决方案:
token和tokenExpired字段manifest.json中uni-id配置是否设置了合理的tokenExpires(单位秒)注意:HBuilderX 2.8.0+推荐使用蛇形命名
uni_id_token存储token,避免兼容性问题。要回复问题请先登录或注册
公告
更多>相关问题