token 最终解决方案

770 阅读1分钟

登录

POST 请求
/user/login
只返回 token, token 时效 30 分钟

{
	"code": "0",
	"msg": "登录成功",
	"data": {
		"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMyxUUUwiLCJpYXQiOjE2MDIwNjk0MjIsImV4cCI6MTYwMjA3MTIyMn0.6MQF6OK2UoOmDV9bfztbTW3vI40CPTzMB724MmglBznnQ0Yi87dhGXpG8t3QQ_pulza3Bg3YzmbYxyvixnNcKA"
	}
}

刷新 token

POST 请求, 需要把原来的 GET 请求改掉
/user/refreshToken
在 token 失效后返回的 code 为 401, 使用旧 token 发起请求, token 在 header 中, 不需要额外传参
7 天内可使用旧 token 刷新 token, 7 天后接口请求失败, 报 401 HTTP 状态码

{
	"code": "0",
	"msg": "成功",
	"data": {
		"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxMyxUUUwiLCJpYXQiOjE2MDIwNjk0MjIsImV4cCI6MTYwMjA3MTIyMn0.6MQF6OK2UoOmDV9bfztbTW3vI40CPTzMB724MmglBznnQ0Yi87dhGXpG8t3QQ_pulza3Bg3YzmbYxyvixnNcKA"
	}
}

注意:在用户正常发起请求因为过了 30 分钟后 token 失效, 需要返回 code:401;然后用旧 token 请求刷新 token ,7 天过去后就只能登录,这个时候刷新 token 的接口要报错, HTTP 状态码为 401