首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php和jquery进行镜像登录

问使用php和jquery进行镜像登录
EN

Stack Overflow用户
提问于 2014-06-03 00:12:42
回答 1查看 93关注 0票数 3

我有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上使用了以下代码:

代码语言:javascript
复制
<?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的登录数据作为参数。

EN

回答 1

Stack Overflow用户

发布于 2014-06-08 18:22:53

我假设这两个网站共享对同一数据库的访问。

如果是这样的话,我建议向users表中添加一个列,该列将用作一次性登录键。此外,另一列用于表示该键的过期时间(除非您跟踪上次登录时间)。

  1. User login in ws1
  2. ws1验证凭证,如果凭证有效,则生成随机密钥并更新适当的表列(Tempkey值和expiration)
  3. Page是用设置为向ws2(http://ws2.com/login.jsp?tempkey=[...])
  4. ws2's发送请求的javascript/ method
  5. Secondary
  6. 呈现的) login.jsp查看临时密钥并启动二次登录ws2上的登录在users表中搜索密钥并开始用户的新会话,绕过普通登录procedures.
  7. ws2通过ws1页面

上的jquery连接将ws2上会话的cookie发送回给用户。

在这种情况下,每个站点都有不同的session_id。我不知道您是否正在尝试共享用户身份之外的会话数据。这需要更多的技术知识才能给出更彻底的答案,但前提是相似的。

希望这能帮上忙,小菲

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23998888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档