双 Token 认证,无感更新

一、流程 用户首次登录后,服务端给客户端发两个 token ,分别为 accessToken 和 refreshToken。 accessToken 的生存时间较短,用于后续客户访问接口时使用。 refreshToken 则用于更新 accessToken 并返回给客户端, 更新后 refreshToken 也需要刷新。 更新或生成accessToken时,需要更新用户所有的 refreshToken 的过期时间。 二、token 说明 过期时间【测试】 accessToken :2天 refreshToken :15天 存储信息: accessToken: 用户基本信息:用户Id,用户的权限 refreshToken: 过期时间 用户id redis 缓存内容: 使用 hash 数据类型保存用户的token信息,因为一个用户可能会多地登录。 Key:【user_token : [userId]】 Value【hash】: key : accessToken value: refreshToken expireTime(refreshToken的过期时间) 三、社交登录 社交登录简单基本流程:【以gitee为例】 在第三方应用【gitee】中注册应用,获取 client_id 和 client_secret 引导用户到第三方【gitee】认证页面,此时请求带上 client_id 用户授权后,带着第三方【gitee】生成的 code 到回调地址。 服务端带着 code,client_id,client_secret,redirect_uri 信息,请求第三方【gitee】获取access_token 服务端带着 access_token 可以获取用户的信息 可以使用用户信息进行 注册/登录 四、问题及解决 1、token 过期后无法解析 使用以下 jwt 工具进行生成jwt和解析jwt。 ...

八月 28, 2024 · 1 分钟