我司 Java 后端的骚操作

2019-02-22 09:20:00 +08:00
 xutao881

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

19335 次点击
所在节点    程序员
155 条回复
passerbytiny
2019-02-22 11:16:33 +08:00
@xutao881 #15 多标签页多账户同时登录,能弄出这需求,感觉不是后端骚,是产品骚。后端抛给你了“只要把 sessionID 和 token 存下来就行了”,据此推测,后端已经被产品弄崩溃了。多账户同时登录(并且不用来回切换账号)这种事,Windows、Chrome、Firefox 都没有完善解决的方案。

标准 HTML 的 session、cookie、localStorage、sessionStrong 机制,以及标准的 sessionID、token 技术,是都实现不了你这需求的。你需要的是浏览器的黑科技,比如 Firefox 的多账户容器;或者像 @iyangyuan #52 提到的 URL 黑科技。
wolfie
2019-02-22 11:20:57 +08:00
@xutao881 #17
按照这个描述,每个标签独立的用户状态,确实需要传一个类似 session_id 的唯一标识。
后端说的没问题。
wolfie
2019-02-22 11:22:41 +08:00
append #81
人后端没让你做,多个标签页一个会话,后端应该怎么区分。
caomu
2019-02-22 11:22:47 +08:00
google 账号是在 url 里面加上 /u/0 /u/1 等等区分
xingyue
2019-02-22 11:27:24 +08:00
@iyangyuan #58 emmmmm 我觉得 cookie 里面改下数据结构应该就行了,如下图:

每个 tab 页面登陆成功的时候,从后端获取 userid(如果 username 是唯一的直接存 username 更省事),对应的 session 和 token 以及过期日期 lastdate,然后 userid 在每个页面通过 js 变量维护,就可以多个 tab 页面多个用户了,页面切换登陆用户的时候,遍历 userid,找到 lastdate 没过期的,然后通过 userid 得到 username 显示给用户选择就好了~
Marstin
2019-02-22 11:33:06 +08:00
@freakxx 是的,难点只在于标签页标识的识别与存储,解决了这个问题,和普通登录就没什么差别了。
哈哈,不能理解以上那么多扯些乱七八糟的,真的服。
几个顶 #58 的,真的误导人,前端持久化多个用户信息从来不是问题,问题在于没法识别标签页和哪个用户的绑定连系。前端持久化,都是以域名为单位,从来不是以标签为单位。

这傻吊需求做出来之后,岂不是不能用 “在新标签页中打开链接” 了
xiangyuecn
2019-02-22 11:34:30 +08:00
#17 如果是要实现这种的话,确实是前端的事情。cookie、storage 之类的如果仅仅单独使用就不用考虑了,那些是共享的。不同标签下只有地址栏不是共享的,并且很多产品的管理后台就是按这种方式实现的,在 url 中来区分不同的产品 /用户。见#84 这种。
realpg
2019-02-22 11:45:52 +08:00
@xutao881 #17
直接开发个换马甲系统算了……
DRcoding
2019-02-22 11:49:24 +08:00
一个浏览器保持多个登录用户吧,用 spring session 就行了
TimLang
2019-02-22 11:49:40 +08:00
很早以前的天猫登录用的是嵌入淘宝的登录页,然后用 jsonp 做的。。当年我就是抄天猫的。。
Zzdex
2019-02-22 11:55:20 +08:00
现在都流行 不自己商量解决 来 v2 解决的吗
zxcvsh
2019-02-22 11:58:40 +08:00
别人都搞单点,你这来多点...
passerbytiny
2019-02-22 12:01:05 +08:00
@wolfie #72 建议你先去了解一下啥是 session_id。
lizhuoli
2019-02-22 12:07:43 +08:00
这 TM 是 SSO,我看了半天才理解,为什么叫做”多点登录”
lzhnull
2019-02-22 12:09:48 +08:00
没有错,可以前端实现
wangxiaoaer
2019-02-22 12:10:44 +08:00
@arrow8899 大哥,这个学名叫 单点登陆。
karllynn
2019-02-22 12:12:47 +08:00
不就是点一下就登录的单点登录么
youngxhui
2019-02-22 12:22:39 +08:00
多点登录还需要故意实现?
luoway
2019-02-22 12:33:29 +08:00
只有“单点登录”的概念,难怪“多点登陆”概念有不同理解。
也就是“非单点登录”。
dmjob2015222
2019-02-22 12:35:11 +08:00
开始你的表演给老板看!

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

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

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

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

© 2021 V2EX