当用户点击另一个网站上的链接时,如何使用php脚本登录的最佳方式


Best way to way a php script that logs a user in when they click a link on another website?

可能重复:
单一登录-如何实现?

我有两个完全不相关的网站。我需要编写一个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

这种方法的缺点:

  • 你必须能够访问双方的源代码
  • 它不是防弹的(盐,盐,盐!(