时间:2021-05-26
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
简单说一下我的逻辑,我也不知道我理解sso对不对。
假如三个站点 a.baidu.com b.baidu.com c.baidu.com
a.baidu.com 作为验证用户登录账户。
b和c作为客户端(子系统)。
b和c需要登录的时候跳转到a,并且携带参数source指明登陆后跳转的链接。
a站点就是普通的登陆方式(校验用户密码),校验成功后做一些处理。需要生成一个ticket,具体怎么生成都可以,只要安全就可以了。然后存储到Cache里面。这里有疑问,后面总结。登陆成功后直接跳转到\(url就可以了。
``` php private function getTicketUrl(\)source){\(ticket = md5(time()+key); Cache::put(\)ticket, $user, 120);$url = $source . '?ticket=' . $ticket;return $url;}假如说a站带着ticket跳转到b站(b.baidu.com?ticket=xxxxxxxxxxxxxxxx```)
b站做一个全局的过滤器,接受这个ticket然后请求a站验证ticket是否为a生成的。
b站过滤器App\Http\Middleware\CasAuthenticate代码,这里判断是否有ticket并发送请求到a站校验。如果是登陆的,则拿到用户UID进行登陆。
逻辑算是完成了,但是有几个疑问。
1.我这个实现,我自己都不知道是不是对的,这是我根据原理写出来的。
2.假如b站现在跳转到c站,由于b站活跃比较频繁,session一直都在,而a站的缓存时间极有可能已经过期了,此时从b站跳转到c站,c站跳转到a站去判断登陆,结果发现已经失效了,还是得登陆。所以这是有问题的,由于我们业务模块相关性差,不会随意跳转,所以暂不考虑这样的问题。但这确实是我的一个问题。我没想清楚。
有关SSO单点登录的PHP实现方法(Laravel框架),小编就给大家介绍这么多,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php实现的SSO单点登录系统接入功能。分享给大家供大家参考,具体如下:SSO英文全称SingleSignOn,单点登录。SSO是在多个应用系统中
本文实例讲述了php的sso单点登录实现方法。分享给大家供大家参考。具体分析如下:这里详细讲到了几点:1、点击登录跳转到SSO登录页面并带上当前应用的callb
本文实例讲述了asp.net简单实现单点登录(SSO)的方法。分享给大家供大家参考,具体如下:单点登录(SingleSignOn,简称SSO)是目前比较流行的服
一、基于JWT实现SSO单点登录原理 1、什么是单点登录 所谓单点登录就是有多个应用部署在不同的服务器上,只需登录一次就可以互相访问不同服务器上的资源。
单点登录概念单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就