好像真没见过没网就无法登出的。
如果是为了安全性考虑,有没有更好的解决方案?
1
lzvezr 2018-12-14 13:00:23 +08:00 via Android
清空数据不就行了,使用中也经常有不退出登录就卸载软件的吧?
|
2
dapang1221 2018-12-14 13:03:50 +08:00
访问服务端接口清掉服务端的 token,然后客户端自己再清掉自己的 token,应该是防止 token 再被别人用吧。要么就是设置过期时间。感觉挺鸡肋的,安全性也没高多少。
|
3
jingyulong 2018-12-14 13:08:09 +08:00
一般都不用返回数据的,能请求服务器端,就请求。不能请求也能注销的。
|
4
whileFalse 2018-12-14 13:11:13 +08:00
应用场景中没网的情景多吗?
大部分应用无需考虑在断网场景下的可用性。LZ 是在纠结啥? |
5
imn1 2018-12-14 13:27:37 +08:00 1
猜猜这个需求的产生
客户端有个明确的登出操作,但因为网络原因,服务端没接收,但客户操作人已经认为「安全登出」了 如果短时间内有其他人在相同设备再操作客户端,此时网络可达,变成直接获取前一个人的帐号内容 这个需求是想避免这种情况? 想 100%解决应该是个难题 |
6
gpra8764 OP 其实现在来说实现的逻辑的确是如前面几楼朋友说的一样,清除本地 token 和发送登出请求一起做,及时请求失败了也是可以登出的。
我纠结的点在于一定要有网络时且请求成功才能登出这样的需求是不是太奇葩了。 需求的提出方不知道是不是有安全性的考虑,这个我只是想了解下。 |
7
imn1 2018-12-14 14:15:19 +08:00
@gpra8764
金融类的尤其一些开放设备肯定要达到这种需求,就是确认登出 但银行之类很多都有物理卡作为检测,基本上卡不同就可以判别前卡登出了 银行类手机 APP 我觉得也难以做到实时检测非正常登出,也是靠极短的 session 时效作为控制 如果服务器负担不重的话,例如登入用户数量有限,都是特定用户,可以考虑一下加个长连接,用类似心跳包频繁检测,结合其他状态一起判断是否非正常登出 |
8
TomatoYuyuko 2018-12-14 14:27:47 +08:00
不访问网络的前提下,登出存 storage,加载页面时识别是否存在,如果存在重新获取 token 巴拉巴拉
|