发布网友 发布时间:2022-03-24 16:35
共1个回答
热心网友 时间:2022-03-24 18:04
摘要重新获取code,然后得到access_token, 即要重新调用授权界面,需要用refreshtoken刷新accesstoken。如果刷新取到了新的accesstoken、refreshtoken、expirein,需要用这些新的去替换掉关联表中的数据,建议每次登陆的时候都用refreshtoken。咨询记录 · 回答于2021-11-04TOKEN过期,请刷新后重试(c561371103912c重新获取code,然后得到access_token, 即要重新调用授权界面,需要用refreshtoken刷新accesstoken。如果刷新取到了新的accesstoken、refreshtoken、expirein,需要用这些新的去替换掉关联表中的数据,建议每次登陆的时候都用refreshtoken。具体方法你这我有点看不懂方式1:用户重新登录,获得新的Token就可以了,但是当过期时间较短的时候,每次都是要重新登录操作 的,体验很差为了提高用户的信息安全性,Token的过期时间都比较短(就算万一泄露了,过一会儿也就过期无效化了)方式2:根据用户信息,自动给用户生成新的Token,减少登录次数。接口的响应信息中是有三个和token相关的信息的access_token:当前使用的token,用于访问需要授权的接口expires_in:access_token的过期时间refresh_token:刷新获取新的access_token刷新Token 的方法有两种:方法一:在每个请求发起前进行拦截,根据expires_in判断token是否过期,如果过期则会刷新后再继续请求接口优点:请求前拦截处理,能节省请求次数缺点:后端需要提供Token过期时间字段(例如:expires_in),并且需要结合计算机本地时间判断,如果计算机时间被篡改(特别是比服务器时间满)时,拦截会失败的方法二:在每个请求响应后进行拦截,如果发现请求失败(Token过期导致的)时,刷新Token再刷新请求接口优点:无需Token过期时间字段,无需判断时间缺点:多消耗一次请求这里推荐使用方法二,相比较下来,方法二更加的稳定,不会出现意外的问题