【问题标题】:Is it possible to read the php session cookie via node.js?是否可以通过 node.js 读取 php 会话 cookie?
【发布时间】:2018-10-30 14:02:48
【问题描述】:

由于 PHP 会话基本上是 cookie,我使用它们来验证登录用户(我知道,我应该使用令牌),是否可以在我的节点应用程序上读取会话 cookie? (我想创建一个简单的聊天,从 PHP 会话中获取登录的用户名,并且在途中只允许登录的用户使用聊天)

那么,这样做的首选方法是什么? (在安全方面也是如此)

**编辑:我正在尝试在 PHP 中获得与此等效的节点:

if(!isset($_SESSION['user_id']){
   //don't allow access to the chat page
} else {
   //show chat for logged user
}

【问题讨论】:

  • cookie 不属于特定语言
  • 谢谢,我编辑了原始帖子,然后我正在寻找等效的节点,如果设置了特定会话,如何显示页面或不显示页面(来自 PHP)
  • 欺骗? :stackoverflow.com/questions/3393854/… 我不使用节点,所以我无法回答这部分问题
  • cookie 和会话是 2 个不同的东西,如果您询问在节点和 PHP 之间共享会话数据,本机会话可能但很难,但您可以使用不同的自定义会话来做到这一点symfony 等 MVC 框架,所以它们完全取决于您的实现
  • Furqan 谢谢。顺便说一句,如果你想看一下,smith 链接到了一种获取会话的方式。现在假设我确实有登录用户的会话,那么显示内容的等价物是什么?

标签: php node.js session cookies


【解决方案1】:

cookie 不是特定于语言的,因此如果 cookie 存在,您当然可以使用 node.js 读取它。

但是,浏览器仅将 cookie 发送到与其关联的服务器。因此,如果您的 PHP 服务器与 node.js 服务器不在同一个子域中,并且 cookie 被配置为允许与子域共享,那么浏览器不会将 PHP cookie 发送到您的 node.js 服务器.

要使用 Express 读取 cookie,您可以使用 cookie-parser module。如何使用它的示例在文档中。安装 cookie-parser 中间件后,你最终会引用:

req.cookie

访问相同的 cookie。要使用 Express 和 node.js 管理会话并跟踪服务器端会话状态,通常会使用 express-session module

【讨论】:

  • 用于在本地主机上进行测试,但在不同的端口上,应该可以正常工作吗?它被认为是同一个域
  • @TTnote - Cookie 是特定于主机的,而不是特定于端口的,因此来自一个端口上的服务器的 cookie 将与请求一起发送到同一主机上的不同服务器,但端口不同。跨度>
  • 谢谢,但我编辑了我的原始帖子,因为我最初的意图与它看起来的完全不同 - 我实际上想知道在节点 js 中,在你得到 cookie 之后,你要么是否允许显示页面,就像您在 PHP 中使用isset 轻松完成的那样。我真的想要一个带有节点的具体示例,因为我无法让它工作
  • @TTnote - 您正在寻找的实际 cookie 中有什么?我不知道 PHP 知道它在做什么,但如果你向我展示来自 http 标头的实际 cookie 字符串,我可以处理 node.js 对它的访问。
  • 是您要找的那个吗?我不确定:[PHPSESSID] => fseh3456bv355oqddmtpf158
猜你喜欢
  • 1970-01-01
  • 2021-10-20
  • 2011-11-26
  • 2019-09-29
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多