我有websiteA和websiteB。websiteB用PHP+MYSQL编写。这两个网站都使用jquery。
一切都是这样的:用户登录到websiteA,然后我想让他自动登录到websiteB,这样,如果他在新的选项卡中转到websiteB,他已经在那里登录了,而不需要手动登录。
我可以访问这两个网站,但它们位于不同的服务器上。
现在,一旦用户登录到websiteA,我将使用jquery post向websiteB发送一个请求,其中包含加密的username+password。登录表单在websiteB上运行良好,但会话似乎有问题。即使数据发送正确并且登录表单工作正常,用户也不会登录到websiteB。
所以我试着这样做:
1.用户登录websiteA。
2.使用jquery post向websiteB发送请求并检索session_id。我们将会话id称为"sess1";
3.然后我将username+password+session_id(sess1)发送给websiteB
现在websiteB有了会话数据,当我尝试在websiteB上登录时,我还会尝试根据之前检索到的数据设置一个自定义session_id。因此,我在websiteB上使用了以下代码:
<?php
session_id($_POST['session_id']);
session_start();
?>如果我一直发送POST请求从websiteA检索session_id到websiteB,那么session_id是原始的(Sess1),这是正确的。现在,如果我在新的浏览器页面中打开websiteB,session_id就不同了。例如,如果我在同一个浏览器上运行两个不同的会话。
这可能是因为websiteB将从websiteB传入的数据视为客户端,然后当我打开websiteB时,它将其视为另一个客户端。
所以问题是,如何镜像登录usign、jquery或curl?
现在唯一的方法似乎是打开一个弹出窗口,其中包含websiteB的登录数据作为参数。
发布于 2014-06-08 18:22:53
我假设这两个网站共享对同一数据库的访问。
如果是这样的话,我建议向users表中添加一个列,该列将用作一次性登录键。此外,另一列用于表示该键的过期时间(除非您跟踪上次登录时间)。
上的jquery连接将ws2上会话的cookie发送回给用户。
在这种情况下,每个站点都有不同的session_id。我不知道您是否正在尝试共享用户身份之外的会话数据。这需要更多的技术知识才能给出更彻底的答案,但前提是相似的。
希望这能帮上忙,小菲
https://stackoverflow.com/questions/23998888
复制相似问题