我们公司的多点登录一直没实现,今天早上公司的 JAVA 找我说,让我前端来实现用户的多点登录,只要把 sessionID 和 token 存下来就行了,我特么喵也是醉了,是我技术水平不够么?我怎么有点懵逼呢?用户多点登录居然让前端来做??
我们公司的多点登录一直没实现,今天早上公司的 JAVA 找我说,让我前端来实现用户的多点登录,只要把 sessionID 和 token 存下来就行了,我特么喵也是醉了,是我技术水平不够么?我怎么有点懵逼呢?用户多点登录居然让前端来做??
|
YuiconFeb 22, 2019
1
熟悉的前后端分锅现场
|
|
qpingFeb 22, 2019
2
多点登陆还是单点登陆?
|
|
momuouFeb 22, 2019
3
--只是存而已吧。。可能是想让你前端放在缓存上,让他后端能拿到不用通过 URL 带过来吧
|
|
wrqFeb 22, 2019
4
你开始了
|
|
DonaldYFeb 22, 2019
5
什么是多点登录。。。
|
|
keepeyeFeb 22, 2019
6
多点登录是什么?
|
|
liuxuFeb 22, 2019
7
单点登录是故意限制的啊。。默认不开发单点登录就是多点登录
|
|
stormwuFeb 22, 2019
8
单点登陆吧
|
|
myhot21Feb 22, 2019
9
这和我们的实现做法一样,没有错。
|
|
RoyLFeb 22, 2019
10
....多点登陆,可能确实是你技术不够吧
|
|
litujin1123Feb 22, 2019
11
多点登录是啥?
|
|
zhangjinglongiFeb 22, 2019
12
你前端不做难道让后端拿取登录状态 session cookie ?
|
|
RaisuFeb 22, 2019
13
我水平不够啊,怎么看不懂啊
|
|
14
一瞬间我以为多点已经这么牛了,都出第三方登录系统了
|
|
MineDogFeb 22, 2019 via Android
15
sso 吗?
|
|
pudgedoorFeb 22, 2019 via Android
16
我们公司就是前端做的单点
|
|
17
不知道为啥没法 append,我说的有问题,不是多点登录,是多账号同时登录,因为现在的登录是多标签页登录多个用户只有最后一个用户的登录状态有效,我们想做的是多标签页,支持多用户登录。
|
|
18
如果下属以这个理由回怼回来。我想知道上面的领导要怎么做呢?
1.耐心跟前端讲解 http 协议等一大堆前端知识。更甚者跟他说把信息存 cookie 里面。 2.换个其他有能力的同事做。 3.直接开人。 |
|
bridgeca0Feb 22, 2019
19
怀疑你们说的单点登录是不是我理解的单点登录
|
|
xzgFeb 22, 2019
20
对哦 多点登录就不用开发吧(手动滑稽)
|
|
21
@litujin1123 就是用户在同一个浏览器里打开多个不同的系统(不同域名),可以共享登录状态。
由于浏览器的跨域限制,不同域之间没法共享 cookie 和 localstorage 等。所以需要新增一个统一登录入口(认证系统),当用户访问一个新系统,系统检测到未登录时,就重定向到认证系统,如果用户已经登录过了,那么认证系统里面是有 cookie 的,然后重定向到新系统并带上 set-cookie header,这样就不用重复登陆了 |
|
muzhidianziFeb 22, 2019 via Android
22
@ssynhtn 哈哈
|
|
hellormrfoolFeb 22, 2019
23
pm 比较骚 什么业务啊想开开眼界 @xutao881
|
|
dr1q65MfKFKHnJr6Feb 22, 2019
24
emmmmm
|
|
2033009565Feb 22, 2019
25
楼主的意思是同时登陆多个账号
|
|
wweirFeb 22, 2019 via Android
27
弱弱问下,基于 jwt 的方案,怎么优雅地实现单点登录
|
|
javaWeberFeb 22, 2019
28
|
|
dr1q65MfKFKHnJr6Feb 22, 2019
29
单点登录多点登录,这个不说,java 同学,可能只是想让你配合他实现这个功能,你这里只是很小一部分。
|
|
v2chouFeb 22, 2019
30
|
|
lanterboyFeb 22, 2019
31
我一个 JAVA 的,看得也有点懵
|
|
murmurFeb 22, 2019
32
多点登录就是拿到 session 然后前端在 iframe 里偷偷把所有接口都访问一遍创建 cookies 啊
|
|
cqu1980Feb 22, 2019
33
@xutao881 你们后端说得没错,可以你保存,前提是登录完成后,把 sessionID 和 token 返还给你,你在每个 query 操作的时候带上给他...因为如果使用 cookie 来保存的话,由于 key 值一样,所以 value 值会被覆盖成最后一个...
|
|
cqu1980Feb 22, 2019
34
@lanterboy sessionID 一般是使用 cookie 保存的,如果不使用 cookie 保存的话,一般可以通过 url 地址或者隐藏表单文本框的方式来实现,道理是一样的。他这里如果使用 cookie,会导致被覆盖,所以不能使用 cookie
|
|
VoidChenFeb 22, 2019
39
所以后端并没有骚操作= =
|
|
qpingFeb 22, 2019
40
我觉得吧,还是前端需要学点后端的东西,后端需要学点前端的东西。不然沟通起来费劲~
你看最早的程序员不都是自己学电路,焊主板么 |
|
murmurFeb 22, 2019
43
@DonaldY 我理解就是比如我登录了 login.example.com ,那么 biz.example.com 、biz.example-mirror.com ,biz.example-nb.com ,这一系列网站都登录了
|
|
hellowesFeb 22, 2019
44
对,是你技术水平有问题
|
|
notreamiFeb 22, 2019
45
好无聊,前端会什么总喜欢拿 百度就知道的事情拐弯抹角说后端呢?
|
|
metamaskFeb 22, 2019
49
|
|
HazurtFeb 22, 2019
50
楼主的需求我是在 Header 里面加额外属性实现的。
|
|
ThreeBodyFeb 22, 2019
52
看你的评论,感觉可能你技术不够吧,这不就是前端来做的?
|
|
dany813Feb 22, 2019
53
求解多点登陆
|
|
BanxiaozhuanFeb 22, 2019
54
这中用 token 作多点登录的,有个专门的协议的,你可以去找找。 我记得大概有三种实现方式。 确实有前端存 token 的实现,还有就是用一个公共的地服务存 token。
|
|
xmgeFeb 22, 2019
56
额。。。。。用 cookie 就 ok 啊,可以不用前端
|
|
57
多标签登录这特么就是前端去做的啊,前端的持久化可选项里,只有变量的生命周期仅在标签页内,后台怎么知道你是哪个标签。
不管什么登录,sessionID / token 必须要存在前端 PS:现在前端工资真好拿 |
|
58
多账号登录实现起来也不难,最简单的方案:不同的账号使用不同的根路径(可以直接使用账号唯一 id),然后把 cookie 写到每个账号具体的 path 下,这样多账号之间就互不影响了。对于旧系统的改造,凭空多出一个根路径可能影响原有系统,很容易解决,加一层代理,用代理去掉这层虚拟的根路径,即可实现原有系统 0 改动。
本回复仅仅是指导性建议,需要具体业务具体分析,仅供参考! |
|
index90Feb 22, 2019
59
什么是多点登录?!
|
|
ToninieFeb 22, 2019
64
前端无论是存 cookie 还是 localstorage 之类,因为 key 总是固定的,打开多个标签页时,会被覆盖,但是如果不存,也会有问题,你页面刷新以后这些用户 id 和 token 都没了,所以还是楼上说无痕模式最好实现这种需求
|
|
saberloveFeb 22, 2019
65
这个需求太牛逼了 好羡慕
|
|
wc951Feb 22, 2019 via Android
67
没懂什么意思,是说新开一个标签页就要重新登录一次吗
|
|
whileFalseFeb 22, 2019
68
@iyangyuan 这位仁兄说的是最优雅的。
多问一句,你们前端有 node 服务器吗,还是只能控制 http 和 js ? |
|
metamaskFeb 22, 2019
69
@Marstin
多标签页应该要借标志,或者前端有办法获取当前标签页的唯一信息,也是可以。 标签页 1 登陆用户 a(随意生成一个 key,存到 cookie), {"a": token_1} ?uid=a 数据发送的时候,带上 token_1 标签页 2 用户切换为 b(随意生成一个 key,存到 cookie), {"b": token_2} ?uid=b 数据发送的时候,带上 token_2 |
|
dearxe2vFeb 22, 2019
70
涉及到登录嘛(坏笑 还是前端的锅多些,登录核心的用户操作和数据都在浏览器端维持着,是吧,跟服务器几乎没一毛钱关系
就算是单点登录,别的域要获取 token 也是前端的锅多些是吧 另:多点登录 也许可以翻译成:多个登录入口点(登录页面)进行登录。约等于:每个站点需单独登录。就是:普通登录。 |
|
clechoFeb 22, 2019
71
单用户登陆,后台的 session 也是存在前端的 cookie 里的,多用户同时登陆,也就是多开,那就不能存在 cookie 里了,会覆盖掉,所以让你前端存起来,前端不是也有 localStorage 和 sessionStrong 吗?每次请求带上这个 session 或者 token 就行了
|
|
q4336431Feb 22, 2019
72
你的意思是,一个账号,可以同时被多个用户登录吧。
|
|
zzzzzzZFeb 22, 2019
73
这个事不是你分内的?现在前端这么好混?
|
|
aniuaFeb 22, 2019
74
Google 已经为你们开发好了无痕模式,用就是了。
|
|
75
需求没说清楚,我就先不加入战斗了
喷子的水平也是厉害,能靠想象喷 |
|
lovedebugFeb 22, 2019
76
前后端之间用 node 架设中间件管理 session 或者 token 呀
|
|
sstfyFeb 22, 2019
77
只知道统一认证、单点登陆。。
|
|
litujin1123Feb 22, 2019
78
@arrow8899 这个是单点登陆 sso 吧
|
|
fengmenggaokaoFeb 22, 2019
79
这样也能实现,准确说最简单的实现了,如果后端优秀点,可以参考 https://www.apereo.org/projects/cas,总而言之,这个 javaer 让你这样维护应该没啥太大问题的
|
|
DesmondLiu90Feb 22, 2019
80
单点登录吧 ,java 没有什么开源的框架吗? 自己写也没什么吧, 只要把单点登录搞明白就行
|
|
passerbytinyFeb 22, 2019
81
@xutao881 #15 多标签页多账户同时登录,能弄出这需求,感觉不是后端骚,是产品骚。后端抛给你了“只要把 sessionID 和 token 存下来就行了”,据此推测,后端已经被产品弄崩溃了。多账户同时登录(并且不用来回切换账号)这种事,Windows、Chrome、Firefox 都没有完善解决的方案。
标准 HTML 的 session、cookie、localStorage、sessionStrong 机制,以及标准的 sessionID、token 技术,是都实现不了你这需求的。你需要的是浏览器的黑科技,比如 Firefox 的多账户容器;或者像 @iyangyuan #52 提到的 URL 黑科技。 |
|
83
append #81
人后端没让你做,多个标签页一个会话,后端应该怎么区分。 |
|
caomuFeb 22, 2019 via Android
84
google 账号是在 url 里面加上 /u/0 /u/1 等等区分
|
|
xingyueFeb 22, 2019
85
@iyangyuan #58 emmmmm 我觉得 cookie 里面改下数据结构应该就行了,如下图:
每个 tab 页面登陆成功的时候,从后端获取 userid(如果 username 是唯一的直接存 username 更省事),对应的 session 和 token 以及过期日期 lastdate,然后 userid 在每个页面通过 js 变量维护,就可以多个 tab 页面多个用户了,页面切换登陆用户的时候,遍历 userid,找到 lastdate 没过期的,然后通过 userid 得到 username 显示给用户选择就好了~ |
|
86
@freakxx 是的,难点只在于标签页标识的识别与存储,解决了这个问题,和普通登录就没什么差别了。
哈哈,不能理解以上那么多扯些乱七八糟的,真的服。 几个顶 #58 的,真的误导人,前端持久化多个用户信息从来不是问题,问题在于没法识别标签页和哪个用户的绑定连系。前端持久化,都是以域名为单位,从来不是以标签为单位。 这傻吊需求做出来之后,岂不是不能用 “在新标签页中打开链接” 了 |
|
xiangyuecnFeb 22, 2019
87
#17 如果是要实现这种的话,确实是前端的事情。cookie、storage 之类的如果仅仅单独使用就不用考虑了,那些是共享的。不同标签下只有地址栏不是共享的,并且很多产品的管理后台就是按这种方式实现的,在 url 中来区分不同的产品 /用户。见#84 这种。
|
|
DRcodingFeb 22, 2019
89
一个浏览器保持多个登录用户吧,用 spring session 就行了
|
|
TimLangFeb 22, 2019
90
很早以前的天猫登录用的是嵌入淘宝的登录页,然后用 jsonp 做的。。当年我就是抄天猫的。。
|
|
ZzdexFeb 22, 2019 via iPhone
91
现在都流行 不自己商量解决 来 v2 解决的吗
|
|
zxcvshFeb 22, 2019 via iPhone
92
别人都搞单点,你这来多点...
|
|
passerbytinyFeb 22, 2019
93
@wolfie #72 建议你先去了解一下啥是 session_id。
|
|
lizhuoliFeb 22, 2019 via iPhone
94
这 TM 是 SSO,我看了半天才理解,为什么叫做”多点登录”
|
|
lzhnullFeb 22, 2019 via Android
95
没有错,可以前端实现
|
|
wangxiaoaerFeb 22, 2019 via Android
96
@arrow8899 大哥,这个学名叫 单点登陆。
|
|
karllynnFeb 22, 2019
97
不就是点一下就登录的单点登录么
|
|
youngxhuiFeb 22, 2019 via Android
98
多点登录还需要故意实现?
|
|
luowayFeb 22, 2019
99
只有“单点登录”的概念,难怪“多点登陆”概念有不同理解。
也就是“非单点登录”。 |
|
dmjob2015222Feb 22, 2019
100
开始你的表演给老板看!
|