V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wastebaby
V2EX  ›  程序员

各位大佬怎么设计登录用户信息共享

  •  
  •   wastebaby · 2019-06-06 11:12:29 +08:00 · 3305 次点击
    这是一个创建于 1981 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个场景,多个后台系统需要在同一台脑上实现同一个用户在不同浏览器登录一次即可,需要怎么设计比较合理呢,有个前提条件是如果在其它电脑登录同一个用户会将之前已登录用户踢下线

    25 条回复    2019-10-10 16:42:04 +08:00
    shuibo
        1
    shuibo  
       2019-06-06 11:32:07 +08:00
    第一个问题 不同浏览器的实现数据共享 感觉无解 你可以试试找找
    qq976739120
        2
    qq976739120  
       2019-06-06 11:38:53 +08:00
    登录,登出,权限控制....真的是一个可以谈上一天一夜的问题啊...
    wolfie
        3
    wolfie  
       2019-06-06 11:48:11 +08:00
    IP + MAC ?
    slipkinem
        4
    slipkinem  
       2019-06-06 11:48:27 +08:00
    sso 单点登录
    claysec
        5
    claysec  
       2019-06-06 11:53:07 +08:00 via iPhone
    JWT
    Jirajine
        6
    Jirajine  
       2019-06-06 11:53:48 +08:00 via Android
    独立 IP 控制。有 nat 的话无解。
    littleylv
        7
    littleylv  
       2019-06-06 11:55:31 +08:00
    不同浏览器?这么奇葩的需求
    flyingghost
        8
    flyingghost  
       2019-06-06 12:05:22 +08:00   ❤️ 1
    不同浏览器是隔绝的。传统 sso 基于 cookie 直接没戏。
    找同一台机器一定相同的因子,比如 IP。
    如果是内网,域控做的好,每个机器 IP 基本上比较稳定,方案就可行。任一浏览器内登录后只需把 IP 和账号绑定就好了。
    当然安全性就很糟糕了。
    imycc
        9
    imycc  
       2019-06-06 12:05:51 +08:00 via iPhone
    你看看市面上有哪个产品是跨浏览器共享登录的,至少我用的还没遇到过。
    imp23333
        10
    imp23333  
       2019-06-06 15:19:47 +08:00
    不同浏览器真的骚
    wind4
        11
    wind4  
       2019-06-06 15:42:25 +08:00   ❤️ 1
    参考百度云盘和 QQ 设计一个本地服务来管理会话,网页登录时请求本地服务 http(s)://127.0.0.1:6001/session 来获取、更新会话。
    wc951
        12
    wc951  
       2019-06-06 15:55:02 +08:00 via Android   ❤️ 1
    我以前还真做过这种,写一个客户端程序控制登录登出,web 应用通过 jsonp 访问本地的一个端口拿到 token
    kosmosr
        13
    kosmosr  
       2019-06-06 17:20:57 +08:00
    放 redis
    xuanbg
        14
    xuanbg  
       2019-06-06 18:04:23 +08:00
    不同浏览器?不借助第三方程序根本没戏。这个第三方可以是一个本地文件、本地服务什么的。楼上有人说用 redis,真是异想天开。。。你根本不能保证自己的 key 不被别人使用
    wastebaby
        15
    wastebaby  
    OP
       2019-06-06 18:07:16 +08:00
    @wind4 这种是需要客户端不太好搞
    @wc951 客户端需要起程序专门管理?
    @imp23333 哈哈是有点
    @flyingghost 妥妥的 NAT
    @littleylv 同感,...
    index90
        16
    index90  
       2019-06-06 22:08:20 +08:00 via iPhone
    Windows ? AD 域
    ggicci
        17
    ggicci  
       2019-06-06 22:15:23 +08:00
    不同浏览器?这么奇葩的需求 +1
    Takamine
        18
    Takamine  
       2019-06-06 23:49:06 +08:00 via Android
    直接存 IP 吧。_(:з」∠)_
    jugelizi
        19
    jugelizi  
       2019-06-07 00:07:18 +08:00
    这年头什么人都能干产品
    你们家有个 QQ 当我没说
    metrxqin
        20
    metrxqin  
       2019-06-07 00:24:59 +08:00 via Android
    我有个需求根据手机壳颜色更换主题。
    way2create
        21
    way2create  
       2019-06-07 01:23:51 +08:00
    记得之前哪里听过这个需求,当时的技术总监说如果都选择了基于浏览器来做,一般就不会有这种只允许一个端登陆的需求
    fox0001
        22
    fox0001  
       2019-06-07 14:15:48 +08:00 via Android
    不同浏览器…项目经理都不敢这么玩
    fox0001
        23
    fox0001  
       2019-06-07 14:18:17 +08:00 via Android
    考虑用手机扫二维码登录吧。至于踢用户,需要后端登录系统记录用户 session,把要踢的用户 session 清空即可
    cladg123
        24
    cladg123  
       2019-06-07 19:13:54 +08:00
    @metrxqin 这个需求已经被解决了,产品都出来了
    ivydom
        25
    ivydom  
       2019-10-10 16:42:04 +08:00
    楼主的需求可以用 sso 单点登录实现,目前市面上对开发者比较友好的的 sso 产品是 authing,可以直接在云上实现 sso。

    sample*authing*cn (把 * 换成 . 即可) 可以在线体验,基本上五六行就可以实现。

    主要原理是 JWT Token 和 OpenID Connect ( OIDC )。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:39 · PVG 04:39 · LAX 12:39 · JFK 15:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.