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

2018-12-14 12:44:18 +08:00
 gpra8764

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

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

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

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

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

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

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

银行类手机 APP 我觉得也难以做到实时检测非正常登出,也是靠极短的 session 时效作为控制
如果服务器负担不重的话,例如登入用户数量有限,都是特定用户,可以考虑一下加个长连接,用类似心跳包频繁检测,结合其他状态一起判断是否非正常登出
TomatoYuyuko
2018-12-14 14:27:47 +08:00
不访问网络的前提下,登出存 storage,加载页面时识别是否存在,如果存在重新获取 token 巴拉巴拉

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

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

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

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

© 2021 V2EX