ruandao
V2EX  ›  问与答

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

  •  
  •   ruandao · Jan 21, 2019 · 3415 views
    This topic created in 2695 days ago, the information mentioned may be changed or developed.

    谢谢

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

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

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

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

    19 replies    2019-01-22 13:46:31 +08:00
    puritania
        1
    puritania  
       Jan 22, 2019 via iPhone
    每次登陆生成一个 token 啊 旧的 token 就不能用了
    singer
        2
    singer  
    PRO
       Jan 22, 2019 via Android
    jwt
    casparchen
        3
    casparchen  
       Jan 22, 2019 via iPhone   ❤️ 8
    楼主是外国人?建议学习一下中文的标点符号和断句的规则
    whileFalse
        4
    whileFalse  
       Jan 22, 2019
    一个简单的办法( web ):用户成功登录时,把用户当前 session 对应的 redis key id 做一个映射:
    redis set 'user_session:' + user_id session_key_id
    再次登录时,查看当前 userid 在 redis 中是否存在。如果在的话删掉对应的条目。
    yidinghe
        5
    yidinghe  
       Jan 22, 2019 via Android   ❤️ 4
    唯,一性登录,只要让后,来者把前面,的人踢掉就行了。
    MineDog
        6
    MineDog  
       Jan 22, 2019 via Android
    单点踢人吗?
    jinhan13789991
        7
    jinhan13789991  
       Jan 22, 2019 via Android
    我以为你要做一个产品,叫《唯一,性》
    gimp
        8
    gimp  
       Jan 22, 2019
    5 楼介,绍的方式,我觉得 /可以
    HiJackXD
        9
    HiJackXD  
       Jan 22, 2019 via iPhone
    单一踢人简单 不踢人的话考虑 socket
    ruandao
        10
    ruandao  
    OP
       Jan 22, 2019


    我做了张图, 大家看看

    @yidinghe 主要是,被顶掉的号,需要考虑数据保存
    ruandao
        11
    ruandao  
    OP
       Jan 22, 2019
    修改了下
    ruandao
        12
    ruandao  
    OP
       Jan 22, 2019
    ruandao
        13
    ruandao  
    OP
       Jan 22, 2019
    chinvo
        14
    chinvo  
       Jan 22, 2019
    都顶掉了还保存啥数据(

    不如做锁,不登出或者登录状态没超时就不许新登录
    yidinghe
        15
    yidinghe  
       Jan 22, 2019
    你要保存那也是额外的操作了,跟唯一性登录本身无关。比如用户 A 已经登录了 session a1,这时候 session a2 也以用户 A 身份登录,那么将 session a1 踢出的同时保存 session 当中相关信息即可,并不复杂。
    Deville
        16
    Deville  
       Jan 22, 2019   ❤️ 2
    唯一,性登录,有两种方式,吧一种是保持唯一 IP 除非,下线否则相同账号无法,再次登录另一,个就是一直。/踢踢踢那请,求头带个 token 就好,了嘛~
    Geraltt
        17
    Geraltt  
       Jan 22, 2019 via iPhone
    @Deville 老铁深得楼主精髓
    ruandao
        18
    ruandao  
    OP
       Jan 22, 2019
    @chinvo #14  顶掉之前,需要把数据先保存。。。游戏服务器。。。游戏服务器,定时保存的
    ruandao
        19
    ruandao  
    OP
       Jan 22, 2019
    @chinvo #14 目前图上,就是用锁。。。就是感觉,不够优雅
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5834 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 03:07 · PVG 11:07 · LAX 20:07 · JFK 23:07
    ♥ Do have faith in what you're doing.