将前后端的 token 过期时间设置为一样的是没有意义的。

(1)首先token是有效期的,使用refresh Token的操作必须得在有效期内才能进行。所以将前端和后端的有效期设置成一样是没有意义的把。 文中的测试也是将前端的有效期减少,处于在后端的有效期内,才得以进行接口的刷新的吧。 所以在前后端有效期相同的情况下,进行refresh操作是没有意义的。

(2)最近还遇到一个问题,就是我在上传小程序端全部用户信息的时候,token失效了所以refresh失败,这时我接下来又请求了文章中写的login函数(const login = async (params = {}) => { .... } 简写啦),login函数重新向微信进行了login()的请求,导致这时候的session刷新了,所以解密数据就失败了。求好的结局方案。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
liyu001989
最佳答案
  1. “前后端有效期相同的情况下,进行refresh操作是没有意义的” 你明显没有理解 tokne 的两个有效期。看一下一楼的链接,然后再好好看看课程。

  2. “token失效了所以refresh失败” token 只要没有超过可刷新时间就可以refresh, refresh 的时候不会调用 login,而太长时间没有使用,超过了可刷新时间,那么就需要重新login,逻辑没有问题
6年前 评论
讨论数量: 5

感觉重新获得token的过程最好不要调用微信自身的login函数吧,刷新了session,可能会有影响,感觉后端需要重新写一个查找获得token的函数吧。

6年前 评论
liyu001989
  1. “前后端有效期相同的情况下,进行refresh操作是没有意义的” 你明显没有理解 tokne 的两个有效期。看一下一楼的链接,然后再好好看看课程。

  2. “token失效了所以refresh失败” token 只要没有超过可刷新时间就可以refresh, refresh 的时候不会调用 login,而太长时间没有使用,超过了可刷新时间,那么就需要重新login,逻辑没有问题
6年前 评论

@liyu001989 只要在重新刷新时间内,即使token过期也可以刷新,这个是我搞混了,sorry。

6年前 评论

@Fykex 是我没看清楚,你的回答是正确的,谢谢

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!