获取 token 和刷新 token 有什么不同,我不刷新直接获取,不是照样可以使用!!!

当 token 快过期的时候,第三方总是给刷新 token 的接口,我不调用这个接口,我再调用获取 token 的接口不好了!!!!!刷新 token 有什么作用???

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

主要是安全和用户体验的平衡。
1.token为什么需要失效?每次调用接口时token都会在网络中传递,暴露的风险很大,攻击者获取到token就可以伪造身份,token有效期可以一定程度上抑制这种隐患,用token刷新token就没太大意义了,甚至会被攻击者踢出登录。
2.为什么需要refresh_token?如果认可token设置有效期是有必要的,那token过期后总不能让用户重新授权登录,一种解决方案就是在用户登录成功后返回token(短期有效,频繁使用)refresh_token(长期有效,一次使用),客户端保存refresh_token,只有在token过期时调用刷新接口来更新tokenrefresh_tokenrefresh_token暴露的风险是极低的。

所以refresh_token存在的意义就是为了 不需要用户重新授权的情况下安全的获取新的token

4年前 评论
sunny123456 (楼主) 4年前
zhangrongwang (作者) 4年前
鸡排饭加蛋 4年前
sunny123456 (楼主) 4年前
sunny123456 (楼主) 4年前
讨论数量: 5

有些api提供方 获取token是有限制次数的

4年前 评论
sunny123456 (楼主) 4年前

如果你重新获取token的时候不需要用户的账户信息做凭证(比如用户名+密码),那确实是没什么两样,用token换取token就是刷新操作呀? 获取token一般需要用户重新登录的,用户体验不是很好。

4年前 评论
sunny123456 (楼主) 4年前

我之前也被这个问题困扰过,其实可以理解为refresh_token才是用户的身份凭证,token只是获取数据的凭证。token需要在接口调用时传递,所以需要不停更新,而refresh_token可以存储在服务器,刷新token在服务器层面完成,安全性更高。

4年前 评论
sunny123456 (楼主) 4年前
Hi_Debug 4年前
sunny123456 (楼主) 4年前
zs4336

从应用场景上来分析:获取token是用来登录的,刷新token是为了提升用户体验,不用用户重新登陆即可获取token(其实相当于重新登陆了一次)。那么问题来了,如果每次请求都要获取token,相当于每次请求都需要用户登录,那岂不是很麻烦,估计技术老大已经扛着40米的大砍刀在奔向你的路上了。。。 :smirk: :smirk: :smirk:

4年前 评论

主要是安全和用户体验的平衡。
1.token为什么需要失效?每次调用接口时token都会在网络中传递,暴露的风险很大,攻击者获取到token就可以伪造身份,token有效期可以一定程度上抑制这种隐患,用token刷新token就没太大意义了,甚至会被攻击者踢出登录。
2.为什么需要refresh_token?如果认可token设置有效期是有必要的,那token过期后总不能让用户重新授权登录,一种解决方案就是在用户登录成功后返回token(短期有效,频繁使用)refresh_token(长期有效,一次使用),客户端保存refresh_token,只有在token过期时调用刷新接口来更新tokenrefresh_tokenrefresh_token暴露的风险是极低的。

所以refresh_token存在的意义就是为了 不需要用户重新授权的情况下安全的获取新的token

4年前 评论
sunny123456 (楼主) 4年前
zhangrongwang (作者) 4年前
鸡排饭加蛋 4年前
sunny123456 (楼主) 4年前
sunny123456 (楼主) 4年前

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