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

请教:如何维持 APP 的长期 token 动态更新的问题?

  •  
  •   WriteJob · 2017-09-16 11:41:32 +08:00 · 10812 次点击
    这是一个创建于 815 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上搜索找到一个方法:即在第一次用账号密码登录服务器会返回两个 token时效长短不一样。短的时效过了之后,发送时效长的 token 重新获取一个短时效,如果都过期,就需要重新登录了。

    1. 这两个时效分别设置在多久比较合适?

    2. 是否有更理想的解决方案?

    15 回复  |  直到 2018-06-19 17:35:15 +08:00
        1
    imherer   2017-09-16 11:45:53 +08:00
    参考微信的吧,就是这样设计的。 微信的长 token 是一个月,短的好像是 2 小时。
        2
    mengskysama   2017-09-16 12:47:25 +08:00 via iPhone
    参考 oauth2 文档
        3
    wlee1991   2017-09-16 12:56:54 +08:00
    加一个 flag
        4
    pynix   2017-09-16 14:26:56 +08:00
    oauth
        5
    pynix   2017-09-16 14:28:30 +08:00
    普通自家 app 不用考虑客户端过期,过期主要是针对把资源提供给别人用的场景。
        6
    abcbuzhiming   2017-09-16 15:24:43 +08:00
    楼主你这个方案完全不合理,为什么不能直接用哪个长期的 token 呢?怕被人窃取导致安全问题?
        7
    guyskk   2017-09-16 15:52:23 +08:00 via Android
    @abcbuzhiming
    oauth2 就是两个 token,我也想知道为啥这样设计~
        8
    zjp   2017-09-16 17:34:04 +08:00   ♥ 1
    两个 Token 只给自己增加了复杂度。一个过期的 Token 只能换取一个新的 Token 的方式可能更好
    http://www.jianshu.com/p/b4cf771e570e
        9
    lianyue   2017-09-16 17:39:15 +08:00
    30 天有效期 低于 20 天自动续期到 30 天就好了呀 超过 30 天不访问 就需要重新登录
        10
    lslqtz   2017-09-16 18:04:15 +08:00
    过期后自动获取新 token,用另外一个 token 去获取干嘛。。
        11
    workwonder   2017-09-16 18:13:51 +08:00 via Android
    我也是实现成自动续期了。实际的有效期比较短,但是服务器每次见到 token 发来,都会自动续满。

    不知这样安全性如何?
        12
    Cabana   2017-09-16 21:26:00 +08:00 via Android
    @guyskk
    @zjp
    短的是 Access Token
    长的是 RefreshToken
    他们两个的作用是不一样的,建议去看下 Oauth
        13
    kalman03   2017-09-16 22:39:19 +08:00   ♥ 2
    每次打开 APP,用客户端中已存在的 token,访问服务端刷新 token。逻辑为:

    若客户端 token 不存在,表示未登录。
    若客户端用旧的 token 刷新请求,服务端告知 token 失效( token 获取不到对应用户信息),则表示需要重新登录。
    若客户端用旧的 token 刷新请求,服务端正常响应,则用获取到的新 token 替换掉该老 token。

    如此,只要用户在 token 的有效期内访问 app,则用户长期无需登录。
        14
    WriteJob   2017-09-17 08:23:40 +08:00
    @zjp 学习了,文章里分析的很透彻
        15
    g29times   2018-06-19 17:35:15 +08:00
    @zjp 不错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4429 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 47ms · UTC 02:45 · PVG 10:45 · LAX 18:45 · JFK 21:45
    ♥ Do have faith in what you're doing.