我有2个网站A和B。每个用户对两个网站A和B都有相同的登录密码。
现在我希望一些特定的用户在登录A网站后登陆(重定向到)B网站的用户主页。
我不希望他们单独打开B网站的登录页面进行登录。
如果该特定用户已登录A网站,则他将被重定向到B网站的用户主页,而无需登录B网站。任何人都可以帮助我如何实现这一目标吗?
编辑 - 有什么方法可以将用户的登录ID密码从A网站的登录页面发布到B网站的登录页面,然后触发登录按钮将用户一次性重定向到B网站的用户主页?
另外,如果我想登录一些外部网站,例如。 通过我的门户像Gmail一样。用户登录我的网站并被重定向到他的Gmail主页有什么方法吗?
您可以使用几种不同的方法做到这一点。
方法 1:使用 Cookie
一旦用户登录到站点 A,您就可以编写一个 cookie:
setcookie("SiteALoginTrue","True",time()+3600,"/",".Site-B-URL.com");
header("Location : Site-B-URL.com); // Redirect the website to siteB
在您的网站 B 代码中,您需要在网站加载时读取 cookie。
方法 2:使用 PHP在您的 SiteA 登录脚本中,您可以保存带有时间戳的记录用户 IP,重定向到站点 B 后,您将需要另一个脚本来检查站点 A 数据库,如果访问的 IP 已登录 = true。一旦站点 B 发现 IP 标记为已登录数据库,则可以创建已登录会话以避免每次页面刷新都检查数据库。
如果您可以通过站点 B 连接站点 A 的数据库
那么这个建议会对你有所帮助。
1) 在现场 A
具有电子邮件user@gmail.com
的用户成功登录时的重定向
$userEmail = md5(user@gmail.com);
// Store below key to DB table of users whose email is user@gmail.com
$key = md5(microtime().rand());
header('Location: http://www.site-B.com/'."$key/$userEmail");
exit;
2)在现场B,
获取$key
和$userEmail
与站点 A 的数据库连接。并像这样运行查询,
SELECT * FROM users WHERE MD5(email) = '$userEmail' AND key = '$key'
获取用户并在站点 B 上设置会话。然后从数据库中删除密钥。