一个网站支持一个浏览器上多个用户同时登录,有人处理过这种需求吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
darknoll
V2EX    程序员

一个网站支持一个浏览器上多个用户同时登录,有人处理过这种需求吗?

  •  
  •   darknoll 2021-01-25 13:20:43 +08:00 4646 次点击
    这是一个创建于 1808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    听到这个需求的时候我脑子是懵的,还没想过这个场景,实现起来麻烦吗?

    30 条回复    2021-01-26 09:56:25 +08:00
    temporary
        1
    temporary  
       2021-01-25 13:32:21 +08:00 via iPhone   1
    qq 邮箱好像可以
    kop1989
        2
    kop1989  
       2021-01-25 13:34:13 +08:00
    意思是一个浏览器同时记录多个用户的登录状态?
    那么再次有人使用的时候他怎么知道应该自动登录哪个账户?难道拉出列表来选么?
    MIUIOS
        3
    MIUIOS  
       2021-01-25 13:38:20 +08:00
    sessionStorage ?
    linauror
        4
    linauror  
       2021-01-25 13:38:31 +08:00   4
    url 上带 token
    lasuar
        5
    lasuar  
       2021-01-25 13:41:08 +08:00
    小问题, 先把原型画出来。
    CptDoraemon
        6
    CptDoraemon  
       2021-01-25 13:43:44 +08:00
    google 不就这样的吗
    polyang
        7
    polyang  
       2021-01-25 13:48:03 +08:00
    多个用户同时登录?那我请求的时候该带上哪个用户的 token ?
    sazima
        8
    sazima  
       2021-01-25 13:50:43 +08:00   1
    正常需求, 不同路径不同的 token
    dfourc
        9
    dfourc  
       2021-01-25 14:00:41 +08:00
    @sazima #8 这个思路可以
    codingguy
        10
    codingguy  
       2021-01-25 14:03:32 +08:00
    @polyang #7 token 按 session 存就好了
    crab
        11
    crab  
       2021-01-25 14:05:28 +08:00
    谷歌就是 /u/1 /u/2 这样
    bagheer
        12
    bagheer  
       2021-01-25 14:06:18 +08:00
    理解成网页上增加个切换用户按钮
    smyle
        13
    smyle  
       2021-01-25 14:14:31 +08:00
    google 就是可以同时登录 N 个账户啊,可以参考它怎么做的
    具体技术细节不懂,但作为普通用户,我可以观察到的是 url 里有一个字段对应当前用户 id,比如你登录了 10 个用户,从 chrome url 里你是可以区分出来的:
    https://drive.google.com/drive/u/5/
    这就表示是 id=5 的那个用户,当然这 id=5 显然是一个本地概念。不过你把这个链接贴到另一个只登录了一个 G 账户的浏览器里也能用,它会自动转为新浏览器中的那个唯一账户
    u6pM63mMZ34z32cE
        14
    u6pM63mMZ34z32cE  
       2021-01-25 15:40:39 +08:00
    twitter 也可以
    coosir
        15
    coosir  
       2021-01-25 15:46:01 +08:00
    QQ 邮箱也行呀
    x86
        16
    x86  
       2021-01-25 15:48:22 +08:00
    Gmail 那种?
    markgor
        17
    markgor  
       2021-01-25 15:57:17 +08:00
    如我没理解错,
    qq 邮箱和 googl 的不全是吧..
    他们都是记录登录了 A,B,C,D 。但是 active 的只有 1,如果要换号的话才切换,只是免密而已......
    xuanbg
        18
    xuanbg  
       2021-01-25 16:01:25 +08:00
    用 token 的话,你不做限制天然就支持同时登录
    wozhizui
        19
    wozhizui  
       2021-01-25 16:04:11 +08:00
    token 是好的解决方案
    每次验证带着 token 就行了
    myqoo
        20
    myqoo  
       2021-01-25 16:05:48 +08:00
    cookie:

    session=s1,s2,s3
    action_session=s2 (or s1, s3, ...)
    fondD
        21
    fondD  
       2021-01-25 16:05:58 +08:00
    能区分不就是能重复登陆吗
    myqoo
        22
    myqoo  
       2021-01-25 16:06:13 +08:00
    cookie:

    session=s1,s2,s3
    active_session=s2 (or s1, s3, ...)
    clf
        23
    clf  
       2021-01-25 17:01:14 +08:00
    token 如果是 jwt token 的话,往里面塞一个用户 id group 数组就行了
    3wdddd
        24
    3wdddd  
       2021-01-25 17:06:09 +08:00
    localStorage 中存 token 用户组
    url 中存 active user
    wolfie
        25
    wolfie  
       2021-01-25 17:48:30 +08:00
    sessionStorage + 1
    lovelive1024
        26
    lovelive1024  
       2021-01-25 18:14:43 +08:00
    两个参数,一个存所有已经登录的用户,一个存当前选择的用户,请求的时候传对应的用户凭证就行了
    lululau
        27
    lululau  
       2021-01-25 18:16:32 +08:00
    Firefox / Chrome 的多个 Profile 啊。。。代码改都不需要改。。。
    qq544230987
        28
    qq544230987  
       2021-01-25 21:37:57 +08:00
    看来大家都没接触过 10 年前的 WAP 呢?
    那些年,我们用大砖块手机,用 wml 标记语言,不用 cookie 。

    那怎么判断用户是否登录呢?**在 url 后面加一个参数 sid**

    每次访问,都把 sid 和用户表中的 sid 字段进行对比~~~~ 相同就登录了,每次登录,都更新用户表里面的 sid 值。
    shenyuzhi
        29
    shenyuzhi  
       2021-01-26 03:44:37 +08:00 via iPhone
    你把 token 当成客户端的标识不就行了
    Kinnice
        30
    Kinnice  
       2021-01-26 09:56:25 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5773 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 02:28 PVG 10:28 LAX 18:28 JFK 21:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86