唯一性登录要怎么设计比较合适

2019-01-21 21:49:03 +08:00
 ruandao

谢谢

主要,要考虑,如果程序,僵死怎么办(当然出现这个问题的时候,会重新设计,但是要预防出现这个问题)

现在想象中的有 利用 redis 的 set key value EX 10 NX 这样的方案

哪些书,有系统的讲解\考虑到这类问题(嗯,书看的少,要多花时间在上面)...谢谢

目前考虑,是 分配 token 的节点, 先发布踢人广播, 然后等待 n 秒后,在抢锁,进行更换 token 操作

2934 次点击
所在节点    问与答
19 条回复
puritania
2019-01-22 00:10:18 +08:00
每次登陆生成一个 token 啊 旧的 token 就不能用了
singer
2019-01-22 00:44:32 +08:00
jwt
casparchen
2019-01-22 03:01:51 +08:00
楼主是外国人?建议学习一下中文的标点符号和断句的规则
whileFalse
2019-01-22 06:34:25 +08:00
一个简单的办法( web ):用户成功登录时,把用户当前 session 对应的 redis key id 做一个映射:
redis set 'user_session:' + user_id session_key_id
再次登录时,查看当前 userid 在 redis 中是否存在。如果在的话删掉对应的条目。
yidinghe
2019-01-22 08:05:14 +08:00
唯,一性登录,只要让后,来者把前面,的人踢掉就行了。
MineDog
2019-01-22 08:08:56 +08:00
单点踢人吗?
jinhan13789991
2019-01-22 08:20:35 +08:00
我以为你要做一个产品,叫《唯一,性》
gimp
2019-01-22 08:37:33 +08:00
5 楼介,绍的方式,我觉得 /可以
HiJackXD
2019-01-22 08:37:51 +08:00
单一踢人简单 不踢人的话考虑 socket
ruandao
2019-01-22 08:50:39 +08:00


我做了张图, 大家看看

@yidinghe 主要是,被顶掉的号,需要考虑数据保存
ruandao
2019-01-22 09:11:12 +08:00
修改了下
ruandao
2019-01-22 09:21:22 +08:00
ruandao
2019-01-22 09:23:17 +08:00
chinvo
2019-01-22 10:25:36 +08:00
都顶掉了还保存啥数据(

不如做锁,不登出或者登录状态没超时就不许新登录
yidinghe
2019-01-22 10:58:53 +08:00
你要保存那也是额外的操作了,跟唯一性登录本身无关。比如用户 A 已经登录了 session a1,这时候 session a2 也以用户 A 身份登录,那么将 session a1 踢出的同时保存 session 当中相关信息即可,并不复杂。
Deville
2019-01-22 11:42:07 +08:00
唯一,性登录,有两种方式,吧一种是保持唯一 IP 除非,下线否则相同账号无法,再次登录另一,个就是一直。/踢踢踢那请,求头带个 token 就好,了嘛~
Geraltt
2019-01-22 12:10:41 +08:00
@Deville 老铁深得楼主精髓
ruandao
2019-01-22 13:45:51 +08:00
@chinvo #14  顶掉之前,需要把数据先保存。。。游戏服务器。。。游戏服务器,定时保存的
ruandao
2019-01-22 13:46:31 +08:00
@chinvo #14 目前图上,就是用锁。。。就是感觉,不够优雅

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

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

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

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

© 2021 V2EX