You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储OAuth提供商返回的用户唯一ID应使用什么SQL数据类型

关于OAuth用户唯一ID存储长度的回答

主流服务商的用户ID长度实测

  • Google OAuth返回的sub字段(用户唯一ID)通常为21位左右的字符串,远低于128位上限
  • Facebook用户ID为纯数字字符串,现有最长长度不超过30位
  • GitHub OAuth返回的用户ID为数值类型,转为字符串后长度不超过15位
  • 其余主流服务商如Twitter/X、LinkedIn、Apple的用户ID长度也都控制在64位以内

可能超出128位长度的场景

确实存在部分场景下用户ID长度会超过128位:

  • 部分企业级自研OAuth/SSO服务,会将租户标识、用户身份类型、域名等信息拼接进用户唯一ID,实测最高见过200位以上的返回值
  • 部分小众区域性身份提供商,或支持自定义sub规则的OIDC服务,会采用带前缀的UUID、加密字符串作为用户唯一ID,极端情况下长度会超出128位
  • 如果你的业务需要兼容SAML协议转换而来的OAuth身份断言,用户唯一ID可能携带额外的身份源标识,也可能超出长度限制

存储建议

  • 如果你的业务仅需要兼容Google、Facebook、GitHub这三家主流服务商,varchar(128)完全可以满足需求,不会出现溢出问题
  • 如果后续有扩展更多身份源的计划,建议直接使用varchar(255)作为字段类型:该长度是绝大多数SQL数据库对varchar类型的存储优化临界值,不会比varchar(128)额外占用更多存储空间,同时可以覆盖99%以上的业务场景
  • 仅当你确定需要兼容任意自定义身份源时,才考虑使用text类型,该类型没有长度上限,但查询性能会略低于varchar类型

内容的提问来源于stack exchange,提问作者joel coutinho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:39:01