单一登录适用于位于不同域的网站

时间:2020-02-17 06:59:25

标签: php single-sign-on

这是Emon。我有2个网站,并且都是用PHP构建的。现在,我试图加入mywebsite.com和mywebsite.live这两个网站,以便我的用户可以登录mywebsite.com并单击链接到mywebsite.live的实时图标,该图标将立即登录,因为对于客户来说,登录一次更方便,他们可以在站点之间导航。

如何创建一个单面登录页面以登录双方?例如:如果我的用户登录到mywebsite.com并按下实时图标(我已经有一个实时图标,该实时图标重定向到mywebsite.live),它将带我的用户进入mywebsite.live并自动以同一用户身份登录。请在这里帮助我。谢谢

1 个答案:

答案 0 :(得分:0)

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

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

master_login.php,用于管理登录名。

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

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

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

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

向主服务器请求用户的身份验证(即显示登录页面)。

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

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

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

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

会话ID是使用RFC 4122的算法生成的唯一全局标识符 master_login。enter code here php仅重定向到其白名单中的域 主服务器和客户端可以位于不同的顶级域中。例如。 client1.abc.com,client2.xyz.com,login.mydomain.com