当前位置:首页 » 编程语言 » php单点

php单点

发布时间: 2023-01-11 05:30:07

php 单点登录代码

假设有三个不同域名,a.com, b.com, c.com,将其中之一作为真正的登陆入口,所有的域名下发起的登陆,全部重定向到这个节点,这里假设选择a.com/login.php为统一登入节点,为了方便说明,把a.com叫做主节点,其余叫做从节点。

假设现在从任意站点发出登陆请求,最终都被带到 a.com/login.php?from=b.com&sfkey=xxxxxx,用户输入登陆信息,假设登陆成功,返回一个登陆成功中间页面,在这个页面里,包含下面html代码

<iframe width="0" height="0" src="b.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx"></iframe>
<iframe width="0" height="0" src="c.com/sso.php?sessid=xxxxxxxxxxxx&sfkey=xxxxxxxxxxx"></iframe>

sessid是登陆成功以后的session ID,sfkey是一个安全码,这两个串在login.php里绑定到当前登陆的用户记录上。

这个时候a.com实际已经登陆完毕,获得了PHPSESSID的cookie。两个iframe的作用是把获得的session id立刻同步到从节点上,从节点的sso.php获得sessid和sfkey后,首先校验这个配对是否存在,如果存在,立刻把sessid值设为当前session id

session_id($_GET['sessid']); // 使用a.com产生的session id
session_start();

sso.php请求完毕后,b.com和c.com这两个站点就获得了和a.com一样的PHPSESSID cookie;

这个页面会把用户重定向回所来自的页面(到达login.php的时候记住了),重定向完成后,用户已经在所有网站完成了同步登陆。
a.com发送iframe请求的时候使用加密的sessid=xxxxxx里的sessid,从节点的sso.php获取密文后解密才获得真实的session id
可以用单独域名来作为登陆主节点,比如login.x.com,而不用a b c中的任意一个,login.x.com做且仅作登陆服务。

㈡ php单点登录如何实现

一般两种方案:
1 共享SESSION(db,nosql等)
2 通过接口对每个域名下写cookie(常见ucenter)。
至于那些在页面上做处理,不现实的。一则涉及面广,二则维护不方便,也不符合业务封装(模块化)的架构思维。
答题不易,互相理解,您的采纳是我前进的动力,感谢您。

㈢ php 怎么实现单点登录

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。(网络)

我本人认为单点登录主要解决一下问题:

1. 一个用户账号,多站点通用;

2. 一个应用登录,其他应用同时登录;

3. 一个账号退出,其他应用账号同时退出;(非必须,此项不在单点登录的讨论范围之内,不过WEB单点登录,用到的还是挺多的);

4. 欢迎补充

PHP实现单点登录方法有多种:

1. 通过关系服务 如webservice 之类的;

2. 数据库共享session实现;

4. P3P跨站点 如ucenter phpcms 等;

5. 通过文件操作 SESSIONID

6. 欢迎补充

㈣ PHP怎么实现单点登录

1、直接网上找一个单点登录系统,把这2个系统整合到一起,
2、自己写一个单点登录系统,借助中间表,比如你以java系统为主,在java系统里面嵌入了php系统,当点击php系统的栏目时就先去中间表check一下,然后直接跳到你的php系统上面就好,
3、如果没有权限啥的,你就直接放一个连接传用户名和密码直接登录访问也行。

㈤ php 单点登录的一些问题

你指的是同步登录吧,就是在一个地方登录帐号,其他网站也会同步登录上帐号。
一般的做法是在登录的时候发送打开其他网站预留的同步登录网页,这样就可以实现同步登录了,可以参考一下ucenter,这个是用的比较多的。

㈥ php 单点登录

思路很简单,只要5个子系统的用户表信息是一样的,那找到5个子系统的登陆写入cookie或session代码,将其统一一下就可以了!然后再找到判断登陆状态的代码,也将其统一一下就OK!

㈦ 详解PHP如何实现单点登录

可以配合session和数据库(或缓存如redis或memcache)实现,具体步骤如下:

  1. 在登录成功后保存一个时间戳+随机字符的值,这个值暂时叫sign。把这个值存入数据库(缓存),同时也存入session中。

  2. 写一个函数,功能如下:读取数据库(缓存)中的sign,跟session中的sign对比。如不一致,则注销当前session并提示:当前用户已在其他地方登录,你被顶下线。这个函数放到“钩子”里面,实现在每一个操作步骤之前都先调用此函数。

这样,一个简单的单点登录功能就实现了。原理其实很简单,就是每次登录都把数据库(缓存)里面的sign都覆盖一遍,这样当之前登录的人检测到这个sign不一致以后就强制下线。

㈧ php 怎么实现单点登录

您好,即插即用方式实现单点登录:
对于 B/S结构应用系统,用户只需通过浏览器界面登录一次,即可通过UTrust SSO单点登录系统访问后台的多个用户权限内的Web应用系统,无需逐一输入用户名、密码登录。对于 C/S结构应用系统,通过IE控件来实现对C/S系统客户端的单点登录,用户输入一次用户名、密码,即可访问所有被授权的C/S系统资源。无论对于B/S和C/S结构的应用系统,实现单点登录的功能时,后台应用系统无需任何修改。•后置代理方式实现单点登录 对于有改造条件的B/S结构应用系统,UTrustSSO也提供了后置代理的方式实现单点登录。SSO 系统提供各种API,Agent代理,对原有应用系统进行改造,改变原有应用系统的认证方式,同时采用认证服务器提供的技术进行一次性身份认证,实现单点登录。

热点内容
如何用密码锁定 发布:2025-07-12 14:39:10 浏览:924
软件发布源码 发布:2025-07-12 14:29:34 浏览:178
sql函数和存储过程的区别 发布:2025-07-12 14:26:37 浏览:29
查看存储功空间 发布:2025-07-12 14:17:22 浏览:941
安卓手机的朗读功能在哪里 发布:2025-07-12 14:17:07 浏览:298
mysql属于什么数据库 发布:2025-07-12 13:55:52 浏览:166
源码抓捕 发布:2025-07-12 13:47:34 浏览:873
安卓哪里有李小龙 发布:2025-07-12 13:31:49 浏览:439
苹果保存账号密码在哪里找 发布:2025-07-12 13:31:07 浏览:99
东北大学c语言考试题 发布:2025-07-12 13:26:40 浏览:756