登录的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. scope — 权限范围

  • 表示本次授权的权限范围,比如 readwriteuserinfo 等
  • 为 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、网页、小程序等)可以登录系统,以及配置各自的规则(权限控制)。


posted @ 2026-06-03 10:24  了悟  阅读(21)  评论(0)    收藏  举报