可能重复:
单一登录-如何实现?
我有两个完全不相关的网站。我需要编写一个php脚本,将用户发送到第二个网站并登录。需要安全地完成这项工作,还需要发送用户信息(如用户名、配置文件详细信息等(。
实现这一目标的最佳方式是什么?
在两个站点之间设置SSL连接。
并将用户信息添加到例如JSON字符串中,然后将其发送到其他站点。
在另一个站点上,您需要再次检查凭据(在JSON字符串中(。
您所说的是SSO(单点登录(。
有许多方法。
一个简单的方法是实现某种形式的令牌共享,以确保被请求的用户是现有的有效用户,然后再传递它们,或者接受绕过目标站点登录的请求。
我通过在链接中拥有所有必要的数据来解决它:
http://example.com?id=user-info
在哪里"用户信息"是加密的一切我需要的:
$cyphre = new Crypt_Xtea;
$user-info = $username."-".$password."-".$any-other-info-i-need;
$user-info = urlencode(base64_encode($cyphre->encrypt((string)$user-info, "[cyphre key]")));
另一边我有
$cyphre = new Crypt_Xtea;
$user-info = $cyphre->decrypt(base64_decode(urldecode($_GET["id"])),"[cyphre key]");
$user-info = explode("-",$user-info);
在本例中:
$user-info[0] = $username;
$user-info[1] = $password;
etc
这种方法的缺点:
- 你必须能够访问双方的源代码
- 它不是防弹的(盐,盐,盐!(