是否可以通过ajax传输PHP会话ID并使用jquery cookie存储它?

时间:2014-07-31 22:27:45

标签: php ajax json session

首先,在我进行所有必要的代码更改以在我的网站中实现此功能之前,我先问这个问题。我的应用程序中99%的数据是通过ajax生成的,并作为json传回javascript,后者负责生成所有html内容。这与Angular.js类似,但有一个php后端。 index.php唯一能做的就是启动会话,以及其他与会话相关的任务,例如区分访客和登录用户,以及更新访客/用户IP地址的最后时间。

这是我想做的事情:

  1. 使用session_id()创建会话ID以获取会话的ID。
  2. 将它添加到一个数组中,json对其进行编码。
  3. 使用javascript解码json并使用jQuery cookie插件手动创建/更新会话ID cookie。
  4. 我的问题是如果在这个问题上存储php会话ID,在向我的ajax api发出请求时,php仍会将会话视为有效吗?我试图构建一个带有静态html / js前端的应用程序,它完全通过这个ajax api进行交互。我们的目标是提供与Angular.js相似的特性和性能。这是可能的,如果是这样可取吗?

3 个答案:

答案 0 :(得分:2)

看看Can an AJAX response set a cookie?。没有必要通过json和javascript设置cookie。 PHP和http将为您完成。

答案 1 :(得分:1)

如果您使用Javascript更改会话ID,则除非您将旧会话ID和新会话ID发送到服务器并将旧会话ID设置为php中的新会话ID,否则php不会将其显示为有效。

我不确定你是否愿意这样做。

答案 2 :(得分:1)

不要那样做。如果你这样做,会话劫持将更容易完成。坚持PHP使用选项httponly设置cookie。单独选择' httponly'使会话劫持变得更加困难。