为什么不用 accessToken 直接刷新 accessToken,而要用 refAccessToken 刷新 accessToken

2018-12-11 17:33:23 +08:00
 niuker

oauth2.0 中。为什么不用 accessToken 直接刷新 accessToken,而要用 refAccessToken 刷新 accessToken ?

3132 次点击
所在节点    程序员
16 条回复
wujichao
2018-12-11 17:44:27 +08:00
怕 accessToken 泄露, 所以 accessToken 会过期, 如果用 accessToken 刷 accessToken, 那不是白搞了
maichael
2018-12-11 17:46:28 +08:00
accessToken 可以刷新 accessToken 的话,accessToken 不就永远不会过期么。
niuker
2018-12-11 17:49:17 +08:00
@maichael
如果是用 accessToken 刷 accessToken,刷回来的 accessToken 会变化,原来的 accessToken 还是会过期
loveCoding
2018-12-11 17:50:23 +08:00
顺着想法反推一下,那还刷新干嘛呢? accessToken 作为刷新凭证就是换汤不换药啊
maichael
2018-12-11 17:55:30 +08:00
@niuker #3

假设你家的锁是智能门锁,现在给了一个临时密码给我进去了,过了时间这个临时密码就过期了不能用了。

如果临时密码能够刷新临时密码了,那我的临时密码是不是就相当于不会过期了。
pljhonglu
2018-12-11 17:57:33 +08:00
accessToken 在传输的过程中可能泄漏
momocraft
2018-12-11 18:01:38 +08:00
定义两种 token 后:

oauth provider 一方:可以把权限管理和(用于资源的)权限验证分开
client 一方:在有选择时可以把 accesstoken 放较不安全设备上而不导致无限期的权限泄漏
mydns
2018-12-11 18:03:59 +08:00
拿旧密码去换新密码
jswh
2018-12-11 18:05:11 +08:00
accessToken 要交给客户端,refAccessToken 一般放在服务端
zsdroid
2018-12-11 18:10:36 +08:00
@niuker #3 我拿到 accessToken 的时候就已经去刷新到新的了,原来的 accessToken 过期没有我都不关心
also24
2018-12-11 18:32:04 +08:00
本来自己敲的,看了下 SF,觉得直接看回答就足够了:

https://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens
matrix1010
2018-12-11 19:09:26 +08:00
这个问题感觉看过很多遍了
jorneyr
2018-12-11 22:56:05 +08:00
我还真干了用 accessToken 刷新 accessToken 的蠢事, 就是为了前端不再次登录.
xuanbg
2018-12-12 06:14:22 +08:00
@jorneyr 何必多此一举,直接不过期就好了
jorneyr
2018-12-12 07:40:57 +08:00
@xuanbg 也不知道咋就脑子抽了没反应过来
xgp
2018-12-12 13:36:42 +08:00
@maichael 你这解释,我觉得不好。刷新密码必须在有效期内才能刷新,你拿临时密码可以在屋子里换新的临时密码,相当于你一直待屋子里,刷就刷呗有什么关系?一旦你离开了屋子,又过了有效期,密码就会失效,这完全是不同的情况

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX