一、问题现象
接口请求返回 401:
{ "code": 401, "msg": "认证失败, 无法访问系统资源" }日志提示:
- 请求地址'/system/user/list',认证失败'客户端ID与Token不匹配:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiI0dFFOOHhwSXZlTjNJMXZFVTlaWklIdEpoazlsYnVmSyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqCIsImRlcHRDYXRlZ29yeSI6IiJ9.KlHcbDalzRuePFakZhJluxvyzXrASkxpI-xBhJ2usRc',无法访问系统资源 2026-01-24 16:40:09 [sj-client-check] WARN c.a.s.c.c.r.c.g.SnailJobGrpcClient二、核心原因(一句话)
登录时使用的 clientId,必须在后续所有接口请求中保持一致。
clientId 是写进 Token 里的,不一致就会被拦截。
三、正确请求方式(重点)
只需要在请求头中 同时携带这两个参数即可:
Authorization: Bearer xxxxxx clientId: 在sys_client表中说明:
Authorization:登录返回的 TokenclientId:与登录时使用的 clientId 完全一致
四、结论
clientId 不是可选参数,而是 Token 的一部分。
请求头带上clientId + Authorization,并保持一致即可。