2016-03-04 89 views
0

我有2个网站的& B.每个用户都有这两个网站相同的登录密码& B.登录后如何从一个网站重定向到另一个网站的用户主页?

现在我想一些特定的用户登陆到(重定向到)乙网站的用户主页后,他们登录到一个网站。

我不希望他们单独打开的B网站的登录页面登录。

如果特定的用户已在网站,那么他将被重定向到B网站的用户主页,而不基于B网站干什么登录登录。任何人都可以帮我解决这个问题吗?

编辑 - 有什么办法,我可以从一个网站的登录页面到B网站的登录页面发布的用户登录ID密码,然后它触发的登录按钮,用户到B网站的用户主页重定向一气呵成?

另外,如果我想登录到一些外部网站的例如。像Gmail一样通过我的门户。用户是否有任何方式登录到我的网站并重定向到他的Gmail主页?

+0

header('Location:http://www.example.com/'); 退出; –

+1

@RaviHirani并不完全在网站B上登录用户。 – Epodax

+0

@RaviHirani第二个网站是如何知道这个用户是在第一个网站登录的? – RiggsFolly

回答

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:在您的SiteA登录脚本中使用PHP ,您可以使用时间戳记保存记录的用户IP,并在重定向到站点B后,您需要另一个脚本来检查站点A数据库,如果登录的IP记录为= true。一旦站点B发现IP被标记为已登录数据库,那么您可以创建登录会话以避免在每次刷新页面时检查数据库。

+0

我也会建议cookies。正确的路要走。 – izk

+2

还需要写一个cookie来告诉另一个站点哪个用户在另一个站点上登录 – RiggsFolly

+1

这对加密(哪个用户)cookie – RiggsFolly

1

如果您可以通过站点B连接站点A的DB

然后这个建议将帮助你。

1)在站点A

重定向时与电子邮件[email protected]用户成功登录

$userEmail = md5([email protected]); 
// Store below key to DB table of users whose email is [email protected] 
$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.设置会话然后从数据库中删除键。

+0

的内容也许是有用的,但是在这里每次登录时都会生成一个新密钥这需要每次在公共数据库中更新..对吗? – Kaus

+0

是的。每个登录都有唯一的密钥。一旦你在B站上设置了会话,你就不需要密钥。 –

+0

好吧,将密码与用户名一起发送是否安全,因为没有密码,他将无法登录? – Kaus

相关问题