Skip to content

ACCESS_TOKENS 认证令牌表

此表用于存储系统中有多种来源的访问凭证,如:OAuth2 授信应用签发的 token、系统内部生成的临时 token 等。除了Personal Access Token (PAT) 在 PERSONAL_ACCESS_TOKENS 中存储以外, 系统内部所有的访问凭证都存储在该表中。

位置

模型路径:/sysdata/data/tables/sec/ACCESS_TOKENS.tbl

物理表名:SZSYS_5_ACCESS_TOKENS

表结构

字段名字段类型字段描述
ACCESS_TOKENVARCHAR(64)主键,凭证值。所有 token 均由系统随机生成(UUID)
SOURCE_TYPEVARCHAR(32)凭证来源类型,见 SOURCE_TYPE 取值
USER_IDVARCHAR(32)凭证对应的用户 ID
USER_DIRECTORYVARCHAR(16)用户目录,sys 系统用户、external 外部用户,不填默认为 sys
SSOIDVARCHAR(128)签发此凭证的 SSO 提供者 ID(如 wechat_oa),单点登录有此字段,用于追溯登录来源
ENABLEDNUMBER(1)是否启用。1 有效,0 已禁用或已吊销。与过期时间是两个独立维度:token 未过期但 ENABLED != 1 也无法使用
APP_IDVARCHAR(32)授信应用 ID,仅 OAuth2 和客户端凭证 token 有此值,关联 SZSYS_5_TRUSTED_APPS
APP_NAMEVARCHAR(128)授信应用名称,冗余存储方便查询
SESSION_IDVARCHAR(64)凭证创建 Session 后回写的会话 ID。未创建 Session 前为空,创建后写入,后续请求通过此字段判断是否已有可用会话 ,用于 Session 会话复用
EXPIRE_TIMETIMESTAMP凭证过期时间
CREATE_TIMETIMESTAMP凭证创建时间

表索引

类型名称字段列表是否唯一说明
主键PRIMARYACCESS_TOKEN唯一标识一条凭证记录

快速理解

凭证类型用途典型场景
OAuth2 access token第三方应用调用开放 API第三方应用后端 API 调用
客户端凭证 token可信服务器代入用户身份调用接口系统间集成
证书凭证 token使用证书认证的可信服务器代入用户身份调用接口高安全要求的系统间集成
系统内部 token系统自动生成的临时凭证(API、调试、截图、扫码预览等)内部服务

上述凭证共用同一个鉴权入口(Bearer 头或 URL 参数 access_token),系统根据 SOURCE_TYPE 采用不同的校验规则。

SOURCE_TYPE 取值

SOURCE_TYPE凭证类型创建 Session使用后删除
authorization_codeOAuth2 access token
client_credentials客户端凭证 token
personal_temp页面跳转登录 token(signin / getAccessToken)
sys_script脚本生成凭证
sys_nodejsNodeRunner 调试 token
sys_screenshot截图服务 token
sys_mobile_preview移动端预览 token

各类型凭证说明

OAuth2 access token:SOURCE_TYPE = authorization_code

第三方应用通过 OAuth2 授权流程获取的接口凭证。授权码和刷新令牌存储在 REFRESH_TOKENS,本表只存 access_token。

用户授权后,系统在 REFRESH_TOKENS 中消费授权码,在本表写入 access_token 行。access_token 可用于调用开放 API,也可用于创建 Session。刷新 token 时本表的 ACCESS_TOKEN 和过期时间会更新。允许多次使用。

客户端凭证 token:SOURCE_TYPE = client_credentials

服务端到服务端集成的凭证,第三方系统以自身应用身份代入指定用户调用接口,整个过程无需浏览器跳转或用户交互。系统签发前会依次校验:授信应用是否启用、APP_SECRET 是否匹配、请求来源 IP 是否在白名单内、被代入用户是否属于授信应用配置的用户组范围。该 token 记录的是"应用身份 + 用户身份"的组合——APP_ID / APP_NAME 标识授信应用来源,USER_ID / USER_DIRECTORY 标识实际代入的用户;首次鉴权创建 Session 后会回写 SESSION_ID,后续请求复用同一会话。

系统内部 token

系统内部自动生成的临时凭证,便于排查和审计。

SOURCE_TYPE生成来源是否一次性说明
personal_tempsignin 非 AJAX / getAccessToken拼在 URL 上做页面跳转登录,用后立即删除,防止任何人拿到 URL 重复登录
sys_nodejs后端使用命令行调用nodejs编译元数据VSCode 调试注入,调试会话期间可重复使用
sys_screenshot生成缩略图服务端截图,批量导出时同一 token 可能需要多次渲染
sys_mobile_preview手机扫码仪版、报表等生成的二维码页预览对应的页面扫码预览、二维码访问,同一个二维码需支持多人扫描
sys_scriptsecurity.createAccessToken服务端脚本为指定用户生成凭证,允许多次使用,需脚本自行管理生命周期

过期时间规范

SOURCE_TYPE有效期说明
authorization_code8 小时(28800 秒)OAuth2 access_token,参考 GitHub OAuth2 规范,用于 expires_in 属性
client_credentials8 小时(28800 秒)客户端凭证 token,同 OAuth2 规范
sys_script8 小时(28800 秒)服务端脚本生成凭证,与 OAuth2 token 一致
personal_tempsys_nodejssys_screenshotsys_mobile_preview10 分钟页面跳转/编译/截图/扫码预览等一次性或短生命周期场景

数据示例

ACCESS_TOKENSOURCE_TYPEUSER_IDUSER_DIRECTORYAPP_IDEXPIRE_TIMECREATE_TIMEENABLED
e7f3a9c2-4b1d-4e8a-9c3f-2d7b8a1e6f54authorization_codeu001sysapp0012026-06-10 12:00:002026-06-10 10:00:001
f2b8c4d6-1e3a-4f9b-8d2c-5a7e0b3f1d98personal_tempu002sys2026-06-10 10:10:002026-06-10 10:00:001
a3d5e7f9-2b4c-4d6e-8f1a-3b5c7d9e2f46sys_mobile_previewu003sys2026-06-10 10:10:002026-06-10 10:00:001
d8c7b6a5-4e3f-2d1c-9b8a-7f6e5d4c3b2aclient_credentialsu004sysapp0022026-06-10 12:00:002026-06-10 10:00:001
  • REFRESH_TOKENS:存储 OAuth2 授权码和刷新令牌。授权码消费后写入本表 access_token,刷新令牌用于轮换 access_token。
  • PERSONAL_ACCESS_TOKENS:存储 PAT 的资产信息(名称、描述、启停状态)。

使用注意

  1. ACCESS_TOKEN 可直接代表访问身份,不应导出、展示或写入日志。
  2. personal_temp 是唯一一次性 token:拼在 URL 上做页面跳转登录,用后立即原子删除,防止 replay 攻击。其他类型(authorization_codeclient_credentialssys_scriptsys_nodejssys_screenshotsys_mobile_preview)不删,过期前可多次使用。
  3. SESSION_ID 通过记录此字段来保证相同的access_token在不同的请求中可以复用会话。
  4. 令牌属于敏感凭证,不应导出、展示或写入日志。
微信公众号微信公众号:山川软件