Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中实现三个网站的单一登录?_Php_Mysql_Openid_Single Sign On - Fatal编程技术网

在PHP中实现三个网站的单一登录?

在PHP中实现三个网站的单一登录?,php,mysql,openid,single-sign-on,Php,Mysql,Openid,Single Sign On,我有三个相关网站的网络 - site1.domain.com - site2.domain.com - site3.domain.com 目前,每个子域在三个独立的数据库中拥有约100个帐户。他们分别为每个域登录。我想创建site0.domain.com,让他们能够根据一个数据库进行身份验证,然后在用户访问每个站点时自动登录 我不太确定怎么做。我听说过像开放ID、联合会和单点登录这样的术语,但我以前从未想过要集成这样的网站 第一,这在技术上是如何实现的(我使用的是PHP/MySQL),第

我有三个相关网站的网络

 - site1.domain.com
 - site2.domain.com
 - site3.domain.com
目前,每个子域在三个独立的数据库中拥有约100个帐户。他们分别为每个域登录。我想创建site0.domain.com,让他们能够根据一个数据库进行身份验证,然后在用户访问每个站点时自动登录

我不太确定怎么做。我听说过像开放ID、联合会和单点登录这样的术语,但我以前从未想过要集成这样的网站

第一,这在技术上是如何实现的(我使用的是PHP/MySQL),第二,在不中断服务的情况下将现有用户帐户迁移到使用单点登录的好计划是什么

我猜用户可以通过site0上的表单登录,它将根据数据库对用户进行身份验证,并为其会话创建一个数据库行,并附带一个令牌。令牌在会话变量cookie中设置。用户访问site1、site2或site3,如果在GET请求中设置了令牌变量,则会连接到site0使用的同一数据库,搜索令牌并返回正确的用户行。这就是工作原理吗?任何更多的技术建议都会很好


至于迁移,我想我可以让用户创建他们的site0登录名,或者在每次登录其中一个站点之前,将他们的用户帐户“连接”到site0登录名。30天后,所有站点停止接受正常登录,用户被迫创建site0登录。当他们创建site0登录时,它会询问他们的site1、site2或site3用户名/密码,以便获得正确的用户信息。

看看这是一个很好的库,可以用来做这类事情

我发现了一个轻量级的PHP脚本,它很容易使用和理解,实现了OpenID,我想这就是我现在要做的。虽然有麻烦。。。