Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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_Single Sign On - Fatal编程技术网

Php 对托管在不同域上的网站进行单一登录

Php 对托管在不同域上的网站进行单一登录,php,single-sign-on,Php,Single Sign On,我是埃蒙。我有两个网站,都是用PHP构建的。现在我正在尝试加入这两个网站,即mywebsite.com和mywebsite.live,这样我的用户就可以登录到mywebsite.com并单击链接到mywebsite.live的live图标,该图标将立即登录,因为客户只需登录一次就可以更方便地在两个网站之间导航 如何创建一个登录页面,以便登录到双方?对于ie:如果我的用户登录到mywebsite.com并按下live图标(我已经有一个live图标重定向到mywebsite.live),它会将我的用

我是埃蒙。我有两个网站,都是用PHP构建的。现在我正在尝试加入这两个网站,即mywebsite.com和mywebsite.live,这样我的用户就可以登录到mywebsite.com并单击链接到mywebsite.live的live图标,该图标将立即登录,因为客户只需登录一次就可以更方便地在两个网站之间导航


如何创建一个登录页面,以便登录到双方?对于ie:如果我的用户登录到mywebsite.com并按下live图标(我已经有一个live图标重定向到mywebsite.live),它会将我的用户带到mywebsite.live,并以同一用户身份自动登录。请帮帮我。谢谢

我在这里实现的SSO解决方案的工作原理如下:

有一个主域,login.mydomain.com和脚本

管理登录的master_login.php

每个客户端域都有脚本client_login.php

所有域都有一个共享的用户会话数据库

当客户端域要求用户登录时,它会重定向到

主域(login.mydomain.com/master\u login.php)。如果用户尚未登录

它向主机请求来自用户的身份验证(即显示登录页面)

用户经过身份验证后,它会在数据库中创建一个会话。如果用户是

已通过身份验证,它将在数据库中查找其会话id

主域返回到客户端域 (client.mydomain.com/client_login.php)传递会话id

客户端域创建一个cookie,存储来自主服务器的会话id。客户端可以通过使用会话id查询共享数据库来查找登录的用户。 注:

会话id是使用RFC 4122中的算法生成的唯一全局标识符 主登录。
在此处输入代码
php将只重定向到其白名单中的域
主服务器和客户端可以位于不同的顶级域中。例如:client1.abc.com、client2.xyz.com、login.mydomain.com

非常感谢您的回复。请再向我澄清一件事,您是否使用任何服务提供商,如auth0、Okta或OpenID Connect??请让我知道。谢谢