统一登陆该怎么实现

343 天前
 AlpacaCode
朋友公司有个专门的平台做跳转,只要在该平台上登陆,其他录入的十几个平台都不用二次登陆,好奇这样的功能是咋实现的,跨域存储 cookie 吗?如果是都是自己开发的平台还好,像 gitlab 禅道这种如果要实现的话,都得去二次开发才能实现吧?
有没有大佬科普一下
1212 次点击
所在节点    问与答
10 条回复
Jason168
343 天前
感觉不安全,有没有可能是获取了登录的 token 或者 cookie 保存到服务器 你访问的时候再给你加上去
fu4k
343 天前
了解下 oauth2
boris1993Jr
343 天前
我们就这样的
目测 OAuth 2 flow
登陆服务器记录你目前的登录状态
应用比如 JIRA 啥的都支持 OAuth 2 ,配置好了就行
boris1993Jr
343 天前
另外这个玩法的学名叫单点登录( SSO )
TyCoding
343 天前
这不就是单点登录吗?令牌是存储在单独的认证服务器的,如果是不同的域名间访问,估计是跨域拿 cookie 或者 url 重定向携带 token 的方式呗
InDom
343 天前
先定义三者:用户,登陆中心,A 网站。

用户:打开 A 网站
A 网站:这人谁啊,不认识,得登陆,跳转到登陆中心,并携带消息,我需要知道这个人的全部资料
登陆中心:这人谁啊,没登陆,你账号密码多少,让我看看你是谁
用户:输入账号密码,点登陆
登陆中心:哎呦喂,这不是张某嘛,我知道了,你请走好,跳转到 A 网站,携带信息:这货登陆了,但我不能告诉这样告诉你他是谁,你等下拿后门的经文来找我,经文:哦麻利麻利哄你个 c64*82+62
A 网站:哦,有名字啊,拿着经文“哦麻利麻利哄你个 c64*82+62”从后台找“登陆中心”询问,这谁啊,这是你给我的经文,你告诉我他是谁,我着急
登陆中心:这就是那谁,张某,男的,30 多岁,去年来的,这是他照片
A 网站:好的,尊敬的张某,欢迎回家。
AlpacaCode
343 天前
@TyCoding 好奇他们跨域是如何存放 cookie 的 比如我在 a.com 上做了单点登录, 同时也拿到了 b.com c.com 的 cookie 并且存到服务器里面,那在用户点击 b.com/index.html or c.om/index.html 的时候 需要从服务器里面拿这些 cookie 嘛, 比如 gitlab 这种不是自己开发的平台,是不是还要二次开发来实现拿 cookie 的这个功能
TyCoding
343 天前
@AlpacaCode cookie 是存储在浏览器的
nothingistrue
343 天前
单点登录,是一个很庞大的框架,一两句说不清楚。拿“单点登录”、“OAUTH2”当关键词自己去搜资料吧。好在这俩是很老的框架,你还能找到专业性很高的文章。
xianzhe
343 天前
https://apereo.github.io/cas/6.5.x/installation/WAR-Overlay-Installation.html ,可以看下这个,搜搜 cas 单点登录怎么做的,然后自己实现个简化版的

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

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

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

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

© 2021 V2EX