问题标签 [cookie-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

node.js - Express Cookie 会话“未定义”

在快速 cookie 会话中定义 cookie 后,我可以轻松地将其记录到控制台。但是,当我尝试在我的应用程序的另一个路由中访问此 cookie 时,它​​会返回“未定义”。

设置cookie:

尝试在另一个路由中访问 c​​ookie:

0 投票
1 回答
179 浏览

javascript - 无法建立 cookie 会话

我目前正在使用 javascript 做一个用户注册界面。但是我没有成功建立一个cookie会话。

在 localhost 网络上唱歌后,它会提示此消息--> site can't bereach。localhost 拒绝连接。

我已经重新安装了 cookie-session 包,但它仍然无法正常工作

有没有办法让它工作?

这是来自终端的错误消息:(node:7978) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined at /Users/gabrielswee/Desktop/Desktop Folders/Courses/Javascript/ecomm/index.js:58:29 (节点:7978)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 id:1)(节点:7978)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

这是我的语法

index.js

用户.js

0 投票
1 回答
70 浏览

node.js - 如何在 cookie-session 中间件中检测到“req.session”更改?

Readme.md 文件中,它说,

如果内容被更改,中间件将自动Set-Cookie在响应中添加标头。req.session

req.session检测变化的实现在哪里?你能指出我的代码或解释我是如何检测到这种变化的吗?

0 投票
0 回答
88 浏览

node.js - 使用 cookie-session 设置用户信息

我正在使用 cookie-session 来存储我的所有会话信息。我的用户登录后,我将他的信息存储在 req.session.user 中,如下所示

使用 console.log 我可以看到一切都设置好了,但是当我尝试在另一个路由中使用 req.session.user 时,我得到了未定义。我的 cookie 是这样设置的

0 投票
0 回答
35 浏览

javascript - 为什么网络浏览器没有设置我的 cookie?

我正在使用 cookie-session 包。

当用户注册时,我将会话属性设置为一个对象。

cookie 已成功发送到浏览器,如Response Cookies所示。

浏览器不设置 cookie。

我的前端在 http://localhost:1234 上运行,而我的服务器在 http://localhost:3000 上运行。

我目前没有代理开发中的请求,即注册我点击 http://localhost:3000/api/users/signup。

0 投票
2 回答
1193 浏览

node.js - 为什么除了 passport.js 还要使用 cookie-session?

到目前为止我对passport.js的理解是,passport.js序列化用户对象,每次都向客户端发送一个ID。如果这是一个愚蠢的问题,我才刚开始很抱歉:

而不是express-session,我正在使用cookie-session,因为我是初学者。我对cookie-session的理解是它每次都会发送一个session ID,这个ID可以在需要的时候用来查找数据库。

现在,我不明白为什么我们不能只使用passport.js ID?为什么我们还需要使用cookie-session?此外,(这可能有点不相关,但是)基于会话的身份验证和基于令牌的身份验证之间的区别是共享的这个 ID 是动态的,还是每次都在变化?这仍然是 2020 年的标准和现代方式吗?

0 投票
2 回答
249 浏览

node.js - 如何使用 cookie-session 和 passport.js 在注册时启动会话?

我有一个/register用于注册用户的路由器。我现在使用cookie-session(类似的)而不是express-session为了简单。

我被困在需要在注册时对用户进行身份验证的部分。req.sessions.save()我对and的功能感到困惑req.login()我知道req.login()是由 passport.js 提供的,但我不明白是哪一个提供了 req.session 对象。

我是 passport.js 的新手,并且已经广泛阅读了大量文章、视频和 StackOverflow 问题来积累我的知识。老实说,到目前为止,护照文件一直很痛苦。我仍然对注册时的会话启动应该如何工作感到困惑。许多文章跳过了注册部分。因此,我请求有关如何做到这一点的帮助。

0 投票
2 回答
785 浏览

express - Expressjs cookie 会话设置不适用于 Passportjs

我正在尝试调用我的 /auth/user 端点来获取登录到我网站的当前用户。但是由于新的 Chrome 更新,我需要以某种方式设置“sameSite”和“安全”。任何人都知道我该如何解决这个问题?我在 cookie-session 上做错了吗?

cookie 可以通过 express 发送,但它没有我在 cookie 会话设置中指定的 sameSite 和安全设置(见图)。我也尝试过使用 express-session,但由于某种原因,sameSite 和安全设置永远不会传播到用于 oauth 的 cookie。

顺便说一句,身份验证适用于本地主机地址,但是当我使用 heroku 从前端和后端进行部署时,我遇到了需要设置 sameSite 的问题。设置代理或其他东西会解决sameSite问题吗?

在此处输入图像描述

0 投票
1 回答
468 浏览

node.js - 什么是“cookie-parser”中间件?

在使用express.js创建后端应用程序时,我使用了express-sessioncookie-session.

cookie-parser但是,最近我在 npm 上发现了这个包。它很受欢迎。

我的问题是,

是什么以及它与or有何cookie-parser不同?express-sessioncookie-session

0 投票
0 回答
50 浏览

express - 使用 Flutter 进行 HTTP 调用时从 cookie 中删除 httponly

我有一个 Express 应用程序,它具有基于 cookie 的经过身份验证的路由。我正在使用cookie-session将身份验证令牌存储在 cookie 中。

我正在使用 Flutter 开发一个移动应用程序,并在进行 HTTP 调用时使用requests包来管理 cookie。我能够进行基本的 HTTP GET 和 POST 调用。

我的 Express 应用程序有两条路线 - 登录和获取信息。登录路由对用户进行身份验证,并使用 cookie-session 在 cookie 中设置身份验证令牌。Get Info 获取经过身份验证的用户的信息,并由中间件检查身份验证。

当我使用 Postman 或 curl 拨打电话时,Express 应用程序按预期工作,但在我使用 Flutter 拨打电话时却失败了。

当我分析差异时,我发现 Flutter 应用程序在 cookie 中添加了一个“httponly”,因此没有提取身份验证令牌。当使用 curl 进行相同的调用时,它因 httponly 失败而在我删除 cookie 中的 httponly 标志时工作。

我尝试使用 sessionOptions 在 cookie-session 中切换 httponly,但没有成功。

有人可以帮我解决这个问题吗?如果需要,我很乐意提供更多信息。