0

0

PHP单点登入的问题

php中文网

php中文网

发布时间:2016-08-18 09:15:32

|

1057人浏览过

|

来源于php中文网

原创

我做了一个单点登录遇到一个问题是:比如有a、b、c三系统,当没有登入的时候会跳到s系统进行登入,登入成功会生成一个token,并把token传回来,同时会把token存到redis里面。但是b、c系统如何去获取那个token?

回复内容:

我做了一个单点登录遇到一个问题是:比如有a、b、c三系统,当没有登入的时候会跳到s系统进行登入,登入成功会生成一个token,并把token传回来,同时会把token存到redis里面。但是b、c系统如何去获取那个token?

拿到这个token之后,用curl或者header的方式把值分别发送到另外两个B、C系统的接口中,接口中GET或则POST接收发送过来的token参数,然后处理这个token值。比如把token值存入redis、session等

亲,你现在都存入redis了,B、C链接上redis然后直接从redis里面取不可以吗

反对目前的最佳答案,举个例子,假如单点登录要负责100个系统的登录,每个系统有用户登录之后都要请求99遍吗?那还叫什么单点登录。

立即学习PHP免费学习笔记(深入)”;

其他说直接从redis里读token的人,你们知道哪个用户去读哪个key嘛?

所谓单点登录,并不是用户登录了A就代表也能登录B和C,而是登录了S就可以登录A、B、C。

所以需要两个东西:

1.S系统本身的cookie/session,只要用户登录了S系统(不管是直接访问S还是因为要登录A而访问S),就生成该用户在S系统下的cookie/session,不需要做任何跨域之类的处理。
2.login ticket,用户从A系统过来,S系统判断用户是否登录了S系统,如果没登录则要求登录,登录之后或者本身已经是登录状态,则会生成一个唯一的ticket,将该用户以及ticket存入数据库,然后将ticket通过用户浏览器返回给A系统,及S系统让用户浏览器跳转到 http://AAA.com/login/callback?ticket=xxxxx。这个时候A系统拿到了ticket,在内部去请求S系统的校验接口,S系统拿这个ticket和数据库里的比对,找出对应用户的信息返回给A系统,A系统就知道要登录的用户是谁了。

建议题主去看一下CAS协议 https://apereo.github.io/cas/...

有N多理由反对采纳的答案。
首先发放票据和验证票据的过程不对(这个系统通常还要做双机热备等防单点失效,或者分布式之类的)
如其他人所说,100个系统难道说推送100个?超时什么的怎么搞?
如果有一个系统登出了,其他系统应该也要登出?
如果被修改了权限,只允许登录A,不允许登录B,怎么搞?

不存在跨域问题的。

  1. 进入a系统的时候,跳转去s系统。

    点卡销卡源码
    点卡销卡源码

    点卡销卡源码是一个以php+MySQL进行开发的点卡回收平台源码。软件必须使用宝塔面板进行搭建,否则有可能会出现无法安装的问题。

    下载
  2. s系统验证账号后,让浏览器带着票据(在url参数里)跳转回a系统。

  3. a系统这时候被传入了票据,系统内部用curl之类的方法去s系统验证票据(还要带上自身系统的key等证明a系统的这点验证合法性),如果是授权票据(即便登录了s系统,也不代表可以登录a系统,具体由s系统判断发放的票据登录权限),那么就让进入,否则就接着跳转回s系统的登录界面。

楼主可以部署一下某java版开源单点登录系统,了解具体用法和流程。也可以搞下OAUTH2.0之类的授权系统。

b,c提供个获取token的接口,登陆成功刷调下就行

可以考虑用cookie来存储、传递

主站在登陆完成后,在登录服务器跳转回来后的那个页面加上跨域代码,同时发送给从站(或者说其他站点)即可,代码如下


                

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

33

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

36

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

11

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号