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

我司 Java 后端的骚操作

  •  
  •   xutao881 · 27 天前 · 14440 次点击

    我们公司的多点登录一直没实现,今天早上公司的 JAVA 找我说,让我前端来实现用户的多点登录,只要把 sessionID 和 token 存下来就行了,我特么喵也是醉了,是我技术水平不够么?我怎么有点懵逼呢?用户多点登录居然让前端来做??

    155 回复  |  直到 2019-02-23 17:27:34 +08:00
    1  2  
        101
    Klingon   27 天前
    多点登录,意思是好几个地方都得挨个登录
        102
    xuxueli   27 天前 via Android
    XXL-SSO 自荐一下!

    http://www.xuxueli.com/xxl-sso/
        103
    Klingon   27 天前
    “我们想做的是多标签页,支持多用户登录”

    楼主实现了之后,指点我一下
        104
    fleam   27 天前 via Android
    有一种不靠谱的感觉呢。。。
        105
    wolfie   27 天前
    @passerbytiny #92
    我怎么不懂 session 了?
    人后端明显要用 token 验证,用请求参数中的 session_id 取会话。
        106
    fuxkcsdn   27 天前 via iPhone
    多标签多用户登陆确实应该前端做啊
    你前端要告诉后端当前标签是哪个用户,在后端当做是不同浏览器的不同用户登陆就得了,后端完全不需要做任何改动
        107
    wolfie   27 天前
    @passerbytiny #92
    建议你说话前,先搞懂上下文。
        108
    xxooxxooxxoxoxox   27 天前
    楼上一堆半桶水程序员,正解的反而被喷了。。。
        109
    laoyur   27 天前
    多标签页不同用户登录
    ----
    需求有点骚啊
        110
    passerbytiny   27 天前
    @wolfie #105 建议你再去了解一下 token 验证,以及 token、会话、session_id 的关系
    @wolfie #107 再建议你说话前,先去看看楼主想要啥
        111
    wly19960911   27 天前
    这产品太骚了,不同标签页不同用户,要那么多用户干什么。免登录切换都可以
        112
    mamahaha   27 天前
    好多人不理解多点登陆是啥玩,包括我。我就不去搜了,大胆猜测一下,多点登录就是在多个终端上同时登陆进入一个账号,但是这个需要做啥?
        113
    shyangs   27 天前
    Single Sign On 單一登入
        114
    ShotaconXD   27 天前
    楼主应该是想说单点登录吧...
    看上面一直在分析多点登录. 一句话需求做多了吗... 不问清楚就开始头脑风暴
        115
    gamexg   27 天前
    多用户参考 google 的实现吧。

    需要根据具体业务来确定,单页前后端分离应用如果 api 设计够好()的确可以做到完全由前端搞定。

    比较推荐的还是 url 里面携带当前用户 id 用来解决新标签页打开链接丢失当前用户的问题。
        116
    jingyulong   27 天前
    好多人没搞懂,我来解释一下:同一个设备里面,多个账号登陆。同理,一个浏览器里面,开多个标签,对应多个用户,登陆同一个系统。相当于开多个隐私窗口。

    杠精不要再杠楼主了,只能说这个需求有点小众。

    日常生活中,这个需求也是存在的,比如微信多开,游戏多开。
        117
    wolfie   27 天前
    @passerbytiny #110
    session_id != jessionid,说话请过脑。
        118
    passerbytiny   27 天前
    @wolfie #116 接口 != 实现,你说这想表达啥意思
        119
    just1   27 天前
    所以后端说的不是没错吗...........
        120
    liuzhen   27 天前
    原来这么多 V2 大神搞不懂单点登录是什么.

    楼主要多个标签页分别登录不同账户,登录后肯定是要前端来区分哪个标签页用哪个 token/cookie,后端怎么可能管你标签页的事情
        121
    wolfie   27 天前
    @passerbytiny #118
    搞得好像全世界只有你自己才知道会话是什么意思,你看懂人家后端要 session_id 是干嘛的?
        122
    no1xsyzy   27 天前
    多标签页不同用户登录……
    这需求不如单标签页多用户登录简单
    一个 session 对多个 token 就行了吧,大不了自己维护 token
        123
    shenyuzhi   27 天前
    没有 server 的配合,是不可能单点登录,不然就是浏览器的严重的安全问题了。
        124
    shenyuzhi   27 天前
    好吧,没看清楚,说的是单设备多用户。
    这个可以参考下 Gmail。
        125
    donnior   27 天前
    10 年后端对什么是多点登录一脸懵逼。。。
        126
    xuanbg   27 天前
    SSO 肯定需要前端做的呀,光后端支持有个蛋用。。。
        127
    JKeita   27 天前
    后端说得没错。。。肯定要前端存 token,然后每次请求把 token 带上来判断是哪个用户
        128
    lrseee   27 天前
    多点登录?
        129
    NullWithMe   27 天前
    java 后端:不被这个锅 233333
        130
    laminux29   27 天前
    多标签登录多用户吗?实现很简单啊:

    新开一个页面,按有无前页面传值,分为 2 种情况:

    1.前页面无任何值传过来,则新页面按照无用户登录处理。

    2.前页面如果传递用户 id 过来,则让后台把该 id 对应的用户数据找出来显示在前端页面上,然后让后台把该页面上的所有能打开新页面的地方(比如链接)都带上这个值来做后续的值传递,不就行了。
        131
    liuxey   27 天前
    你们吓得楼主不敢说话了,其实都是表达的问题,后端说给楼主听的时候没动听,楼主阐述的时候你们没听懂
        132
    brant777   27 天前
    多点登录 0.0....不做单点登录限制不就是多点登录吗?这应该是同终端多用户登录,要解决的应该是多用户登录后本地 token 被覆盖的问题
        133
    66beta   27 天前 via Android
    多标签页多用户,多开几个隐身模式不就行了,为什么还要特地开发

    另外这个需求的背景是什么?
        134
    passerbytiny   27 天前
    @wolfie #120 我对你的无知和自以为是已经没办法了,退。既然你这么懂,那么你就好好教教楼主该怎么做吧。

    @laminux29 #128 漏洞:你的认证校验依据只有用户 ID,还是在 URL 上的,安全隐患极高。麻烦:所有链接都要加上与主功能无关的用户 ID,不是一般的麻烦。
        135
    wolfie   27 天前
    @passerbytiny #134
    自己没理解人家讲的是什么,先来一句你先看看 xxx,结果被打脸就不敢继续说下去了?
        136
    a15819620038   27 天前
    多点登录?多端登录?
        137
    kakudesu   27 天前
    不懂,看大佬们辩论
        138
    qianzhaoy   27 天前
    chrome 插件 SessionBox ?
        139
    123qqqqqq   27 天前
    哈哈哈,成功逗笑了我
        140
    Vegetable   27 天前
    技术人员应该致力于解决问题.
    这个问题不是前端自己可以完美解决的.

    分析一下需求:
    核心:多个标签页维护不同的用户登陆状态

    需要解决的核心问题:
    > 怎么在相同 domain,不同标签页之间,维护不同的用户 state?

    因为 localstorage 和 cookie 是共享的,排除.

    不同标签页之间,可以说只有 js 变量空间里的变量值和 url 可以是不同的.从这两方面下手.

    * 如果将 state 维护在 js 变量里,刷新页面啥都没了,不行
    * 存在 url 里?也不合适,但是实际上是行得通的.

    为了避免刷新没,localstorage 或者 indexdb 必须要用,为了隔离,可以使用 url querystring 来保存用 tab 标识.


    那么方案应该是这样:

    * 登陆正常返回 token 和用户信息,以及一个**tab 标识**
    * 前端使用 tab 标识,在本地储存中建立容器隔离保存 state,需要保证一个默认容器
    * 所有 url 变更都要保留 tab 标识,一旦 url 失去了该标识,就只能指向默认那一个用户,当然也可以使用全局变量做备份

    * 定时清理

    这个思路做下来,功能倒是实现了,但是这需求真的有点...隐身模式学习一下吧...
        141
    Vegetable   27 天前
    @Vegetable 如果后端不在乎 url 被污染,其实 tab 标识可以前端自己生成
        142
    freakxx   27 天前
    @Marstin

    是的,+1。


    所以我看不太懂盖了这 100 多层是在讨论什么了。。。
        143
    imswing   27 天前 via iPhone
    切换用户吗
        144
    libook   27 天前
    “肇事女司机”,
    “黑人抢劫犯”,
    “素质低下的东北人”,
    “宰客的少数民族”,
    “傻✘Java 后端”……

    话说这和 Java 没关系吧。
        145
    winglight2016   27 天前
    按 lz #17 楼的回复,后台这么设计是没问题的,你搞不懂为什么,可以直接问他啊?同事之间有这么客气的吗?
        146
    laminux29   27 天前
    @passerbytiny 我说用户 ID 只是为了方便他了解实现过程而已。生产时当然不会直接暴露用户 ID。
        147
    laminux29   27 天前
    @passerbytiny 所有链接都要加上与主功能无关的用户 ID,一点都不麻烦,这正是框架要做的事情。
        148
    JamesMackerel   27 天前 via iPhone
    SSO 用 CAS 做其实还不错。
        149
    kiddult   26 天前
    @mamahaha 看上面的评论,你还真理解错了。。。。。这产品超级骚
        150
    palmers   26 天前
    只这个话题来说 java 得罪谁了? 为什么是"java~ 后端"?
        151
    lscho   26 天前
    是你技术水平不够么?是!
        152
    suley   26 天前
    @szpShang 莫非你是在开玩笑,cookie 注入一点也不比 session 难……
        153
    Marstin   26 天前
    @wolfie block 他就好了,这帖子里很大一部分人都可以 block,无论是蠢还是杠,你都和他讲不通。
        154
    Techzero   26 天前
    @Vegetable sessionStorage 不是共享的
        155
    anypwx   26 天前
    这应该是单点登录吧,我 2014 年实习的时候单位领导让我一个月撸完,而且是自己手打,没有用框架。核心是基于 java 拦截器实现的。做完后提供给其他项目组使用,我把它做成了一个中间件。
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2684 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 13:34 · PVG 21:34 · LAX 06:34 · JFK 09:34
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1