具有不同域的不同网站之间的共享登录会话

问题描述 投票:1回答:1

我有3个网站,并且每个网站都必须具有自己的登录表单,但是我将检查同一数据库以便检索用户信息,这3个网站都具有自己的域。当用户正确登录任何登录表单时,我必须共享会话。我已经阅读过有关SSO的信息,因此,我打算基于此执行以下操作:

1。每个登录表单的action属性将重定向到中央URL,该URL将检查是否存在活动的会话,例如:

session_start();

if(isset($_SESSION['userId'])){
   //session is already set
}else{
   //there's no session
   $username = $_POST['username'];
   $password = $_POST['password'];
   //search for this user in the database...
}

如果没有会话,它将尝试使用提供的凭据搜索用户,然后开始会话。

2。设置活动会话后,我将重定向到源URL(但是在这里,我不知道如何让我知道需要的会话数据,例如名称,用户名等)。

所有网站都使用PHP,并且每个网站都在不同的服务器上,我是否遵循这种方法的正确路径?

php authentication
1个回答
0
投票

由于如果您只是发出发布请求,会话将不会持续(这是我之前不正确的建议,所以您可以使用另一种方法。

[首先为每个网站都有一个秘密密钥。正确登录后,将此键在get参数中发送到源网站。如果密钥匹配,则将会话添加到源网站。

但是此方法易于被恶意拦截。最好的办法是在从中央网站登录时将数据库中的登录参数设置为true,并从源网站检查数据库。

© www.soinside.com 2019 - 2024. All rights reserved.