登录的token里存储了哪些信息
{ "code": 200, "msg": "操作成功", "data": { "scope": null, "openid": null, "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoyMDUyNjc1MDM5MTg1Nzg0ODMzIiwicm5TdHIiOiJNTTl5SWtKaTM4a01BbW96cmJvM3hycG5QendlWkV3ZyIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjQ0ODY4NSIsInVzZXJJZCI6MjA1MjY3NTAzOTE4NTc4NDgzMywidXNlck5hbWUiOiJ3dXhpcGluZyIsImRlcHRJZCI6MjA1MjY2NzE5MDIxMjc0MzE2OSwiZGVwdE5hbWUiOiLmioDmnK_pg6giLCJkZXB0Q2F0ZWdvcnkiOiIifQ.11bIT_GE25MKwnQhWfdvkEbNdUOmMOzmzUBxghEuX2U", "refresh_token": null, "expire_in": 604800, "refresh_expire_in": null, "client_id": "e5cd7e4891bf95d1d19206ce24a7b32e" } }
1.上面是登录的返回信息,有一个access_token,里面存放了所有的用户信息。
access_token 分为三段,由 . 隔开,
第一段是Header,有两个内容,签名算法是 HS256,类型是 JWT
第二段是Payload,所有用户信息都在这里
第三段是Signature(签名),这部分是用 密钥 + 算法 对前两段算出来的签名,防止篡改。登录时服务器用第一段和第二段再算一遍,与第三段的签名对照。若不一致则说明篡改过,则拒绝访问。
第一段和第二段都是明文,只不过用base64编码了,解码就能看。一个线上解码工具:https://www.jwt.io/
2.剩余的几个字段含义
1.
2.
3.
4.
5.
2.剩余的几个字段含义
各字段含义
1. scope — 权限范围
- 表示本次授权的权限范围,比如
read、write、userinfo等 - 为 null → 没有限定范围,默认拥有该用户的所有权限
- 常见于 OAuth2 协议
2. openid — 用户唯一标识
- 用于跨应用识别用户身份的唯一ID
- 为 null → 该系统不是微信/支付宝等第三方登录场景,不需要 openid
- 微信登录、支付宝登录时才会返回这个字段
3. refresh_token — 刷新令牌
- 用于在 access_token 过期后,不用重新输入账号密码就能获取新 token
- 为 null → 不支持自动续期,token 过期后必须重新登录
4. refresh_expire_in — 刷新令牌有效期
- 刷新令牌的有效时长(秒)
- 为 null → 因为根本没有 refresh_token,所以这个字段也没意义
5. client_id — 客户端id
- 标识客户端的类型,一般有pc,app,mini_program等。在sys_client表,用于控制哪些客户端(APP、网页、小程序等)可以登录系统,以及配置各自的规则(权限控制)。
下班记得打卡

浙公网安备 33010602011771号