我有2个网站A& B.每个用户都有相同的登录密码用于两个网站A&乙
现在我希望一些特定用户在登录A网站后登陆(重定向到)B网站的用户主页。
我不希望他们单独打开B网站的登录页面进行登录。
如果该特定用户已登录A网站,则他将被重定向到B网站的用户主页而无需登录B网站。任何人都可以帮我解决这个问题吗?
编辑 - 有什么方法我可以将用户的登录ID密码从A网站的登录页面发布到B网站的登录页面,然后它会触发登录按钮将用户重定向到B网站的用户主页一气呵成?
另外,如果我想登录某些外部网站,例如。喜欢Gmail通过我的门户网站。用户是否有任何方式登录我的网站并被重定向到他的Gmail主页?
答案 0 :(得分:4)
您可以使用几种不同的方法来完成此操作。
方法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后,如果登录的IP已登录= true,则需要另一个检查站点A数据库的脚本。一旦站点B发现IP被标记为Logged in database,您就可以创建一个登录的Session来避免每次刷新页面时检查数据库。
答案 1 :(得分:1)
如果您可以通过站点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的DB。和运行查询,
SELECT * FROM users WHERE MD5(email) = '$userEmail' AND key = '$key'
获取用户并在站点B上设置会话。然后从DB中删除密钥。