V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gpra8764
V2EX  ›  问与答

如何看待『登出 App 时必须先访问服务端接口,并在得到正确返回后才可以成功登出』的需求?

  •  
  •   gpra8764 · 2018-12-14 12:44:18 +08:00 · 1740 次点击
    这是一个创建于 2037 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像真没见过没网就无法登出的。

    如果是为了安全性考虑,有没有更好的解决方案?

    8 条回复    2018-12-14 14:27:47 +08:00
    lzvezr
        1
    lzvezr  
       2018-12-14 13:00:23 +08:00 via Android
    清空数据不就行了,使用中也经常有不退出登录就卸载软件的吧?
    dapang1221
        2
    dapang1221  
       2018-12-14 13:03:50 +08:00
    访问服务端接口清掉服务端的 token,然后客户端自己再清掉自己的 token,应该是防止 token 再被别人用吧。要么就是设置过期时间。感觉挺鸡肋的,安全性也没高多少。
    jingyulong
        3
    jingyulong  
       2018-12-14 13:08:09 +08:00
    一般都不用返回数据的,能请求服务器端,就请求。不能请求也能注销的。
    whileFalse
        4
    whileFalse  
       2018-12-14 13:11:13 +08:00
    应用场景中没网的情景多吗?
    大部分应用无需考虑在断网场景下的可用性。LZ 是在纠结啥?
    imn1
        5
    imn1  
       2018-12-14 13:27:37 +08:00   ❤️ 1
    猜猜这个需求的产生

    客户端有个明确的登出操作,但因为网络原因,服务端没接收,但客户操作人已经认为「安全登出」了
    如果短时间内有其他人在相同设备再操作客户端,此时网络可达,变成直接获取前一个人的帐号内容
    这个需求是想避免这种情况?

    想 100%解决应该是个难题
    gpra8764
        6
    gpra8764  
    OP
       2018-12-14 13:59:18 +08:00
    其实现在来说实现的逻辑的确是如前面几楼朋友说的一样,清除本地 token 和发送登出请求一起做,及时请求失败了也是可以登出的。

    我纠结的点在于一定要有网络时且请求成功才能登出这样的需求是不是太奇葩了。

    需求的提出方不知道是不是有安全性的考虑,这个我只是想了解下。
    imn1
        7
    imn1  
       2018-12-14 14:15:19 +08:00
    @gpra8764
    金融类的尤其一些开放设备肯定要达到这种需求,就是确认登出
    但银行之类很多都有物理卡作为检测,基本上卡不同就可以判别前卡登出了

    银行类手机 APP 我觉得也难以做到实时检测非正常登出,也是靠极短的 session 时效作为控制
    如果服务器负担不重的话,例如登入用户数量有限,都是特定用户,可以考虑一下加个长连接,用类似心跳包频繁检测,结合其他状态一起判断是否非正常登出
    TomatoYuyuko
        8
    TomatoYuyuko  
       2018-12-14 14:27:47 +08:00
    不访问网络的前提下,登出存 storage,加载页面时识别是否存在,如果存在重新获取 token 巴拉巴拉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:37 · PVG 00:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.