V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
niuker
V2EX  ›  程序员

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

  •  2
     
  •   niuker · 2018-12-11 17:33:23 +08:00 · 3115 次点击
    这是一个创建于 1934 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    oauth provider 一方:可以把权限管理和(用于资源的)权限验证分开
    client 一方:在有选择时可以把 accesstoken 放较不安全设备上而不导致无限期的权限泄漏
    mydns
        8
    mydns  
       2018-12-11 18:03:59 +08:00
    拿旧密码去换新密码
    jswh
        9
    jswh  
       2018-12-11 18:05:11 +08:00
    accessToken 要交给客户端,refAccessToken 一般放在服务端
    zsdroid
        10
    zsdroid  
       2018-12-11 18:10:36 +08:00
    @niuker #3 我拿到 accessToken 的时候就已经去刷新到新的了,原来的 accessToken 过期没有我都不关心
    also24
        11
    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
        12
    matrix1010  
       2018-12-11 19:09:26 +08:00 via Android
    这个问题感觉看过很多遍了
    jorneyr
        13
    jorneyr  
       2018-12-11 22:56:05 +08:00
    我还真干了用 accessToken 刷新 accessToken 的蠢事, 就是为了前端不再次登录.
    xuanbg
        14
    xuanbg  
       2018-12-12 06:14:22 +08:00
    @jorneyr 何必多此一举,直接不过期就好了
    jorneyr
        15
    jorneyr  
       2018-12-12 07:40:57 +08:00
    @xuanbg 也不知道咋就脑子抽了没反应过来
    xgp
        16
    xgp  
       2018-12-12 13:36:42 +08:00
    @maichael 你这解释,我觉得不好。刷新密码必须在有效期内才能刷新,你拿临时密码可以在屋子里换新的临时密码,相当于你一直待屋子里,刷就刷呗有什么关系?一旦你离开了屋子,又过了有效期,密码就会失效,这完全是不同的情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5702 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:47 · PVG 09:47 · LAX 18:47 · JFK 21:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.