V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
AlpacaCode
V2EX  ›  问与答

统一登陆该怎么实现

  •  
  •   AlpacaCode · 2023-05-25 11:45:02 +08:00 · 1364 次点击
    这是一个创建于 579 天前的主题,其中的信息可能已经有所发展或是发生改变。
    朋友公司有个专门的平台做跳转,只要在该平台上登陆,其他录入的十几个平台都不用二次登陆,好奇这样的功能是咋实现的,跨域存储 cookie 吗?如果是都是自己开发的平台还好,像 gitlab 禅道这种如果要实现的话,都得去二次开发才能实现吧?
    有没有大佬科普一下
    第 1 条附言  ·  2023-05-26 09:19:46 +08:00
    感谢大佬们,我自己搭了一个 gitlab 写了个 demo 测试了一下 ,好像是我想复杂了=。=
    10 条回复    2023-05-25 20:12:45 +08:00
    Jason168
        1
    Jason168  
       2023-05-25 11:49:03 +08:00
    感觉不安全,有没有可能是获取了登录的 token 或者 cookie 保存到服务器 你访问的时候再给你加上去
    fu4k
        2
    fu4k  
       2023-05-25 11:50:12 +08:00
    了解下 oauth2
    boris1993Jr
        3
    boris1993Jr  
       2023-05-25 11:51:25 +08:00 via iPhone
    我们就这样的
    目测 OAuth 2 flow
    登陆服务器记录你目前的登录状态
    应用比如 JIRA 啥的都支持 OAuth 2 ,配置好了就行
    boris1993Jr
        4
    boris1993Jr  
       2023-05-25 11:52:01 +08:00 via iPhone   ❤️ 1
    另外这个玩法的学名叫单点登录( SSO )
    TyCoding
        5
    TyCoding  
       2023-05-25 11:57:45 +08:00
    这不就是单点登录吗?令牌是存储在单独的认证服务器的,如果是不同的域名间访问,估计是跨域拿 cookie 或者 url 重定向携带 token 的方式呗
    InDom
        6
    InDom  
       2023-05-25 11:58:43 +08:00
    先定义三者:用户,登陆中心,A 网站。

    用户:打开 A 网站
    A 网站:这人谁啊,不认识,得登陆,跳转到登陆中心,并携带消息,我需要知道这个人的全部资料
    登陆中心:这人谁啊,没登陆,你账号密码多少,让我看看你是谁
    用户:输入账号密码,点登陆
    登陆中心:哎呦喂,这不是张某嘛,我知道了,你请走好,跳转到 A 网站,携带信息:这货登陆了,但我不能告诉这样告诉你他是谁,你等下拿后门的经文来找我,经文:哦麻利麻利哄你个 c64*82+62
    A 网站:哦,有名字啊,拿着经文“哦麻利麻利哄你个 c64*82+62”从后台找“登陆中心”询问,这谁啊,这是你给我的经文,你告诉我他是谁,我着急
    登陆中心:这就是那谁,张某,男的,30 多岁,去年来的,这是他照片
    A 网站:好的,尊敬的张某,欢迎回家。
    AlpacaCode
        7
    AlpacaCode  
    OP
       2023-05-25 13:25:26 +08:00
    @TyCoding 好奇他们跨域是如何存放 cookie 的 比如我在 a.com 上做了单点登录, 同时也拿到了 b.com c.com 的 cookie 并且存到服务器里面,那在用户点击 b.com/index.html or c.om/index.html 的时候 需要从服务器里面拿这些 cookie 嘛, 比如 gitlab 这种不是自己开发的平台,是不是还要二次开发来实现拿 cookie 的这个功能
    TyCoding
        8
    TyCoding  
       2023-05-25 13:42:15 +08:00
    @AlpacaCode cookie 是存储在浏览器的
    nothingistrue
        9
    nothingistrue  
       2023-05-25 13:57:37 +08:00
    单点登录,是一个很庞大的框架,一两句说不清楚。拿“单点登录”、“OAUTH2”当关键词自己去搜资料吧。好在这俩是很老的框架,你还能找到专业性很高的文章。
    xianzhe
        10
    xianzhe  
       2023-05-25 20:12:45 +08:00 via Android
    https://apereo.github.io/cas/6.5.x/installation/WAR-Overlay-Installation.html ,可以看下这个,搜搜 cas 单点登录怎么做的,然后自己实现个简化版的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.