问题标签 [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 回答
734 浏览

node.js - Express.js、Passport.js、cookie-session、注销不会删除 cookie

我正在使用PassportJS此代码进行注销:

它只是更改 cookie,但不会删除它们。为什么?

如果我只使用以下代码,它会删除它们:

我哪里错了?

0 投票
1 回答
821 浏览

node.js - req.user 认证后返回 undefined

我正在开发一个快速后端,它使用本地护照和 google-oauth2 策略和 cookie-session 进行身份验证。google-oauth 策略 100% 运行良好,没有任何问题。但是我的本地策略返回 req.user undefined... 并且 req.session 返回护照后跟一个空对象。这直接在成功进入successRedirect路由之后!?就好像用户立即注销...

我使用了一些console.logs 尝试尽可能地遵循策略流程,但没有找到断点(找到附加到终端日志图像的链接)。 终端日志 img

代码如下...

服务器/index.js

服务器/路由/auth/local.js

服务器/服务/passportLocal.js

现在两天没有解决这个问题......任何建议都会很棒!

0 投票
1 回答
3807 浏览

node.js - Generating unique sessionId with Express Cookie-Session

I'm using node/express.js with cookie-session's in my application and am trying to understand the proper way create a unique ID for each session.

Currently, when a user logs in a cookie is stored in their browser with a value, for example: session: ABC123. If the user logs out, the cookie is deleted. When the user logs back in, the same cookie and value are stored in the browser session: ABC123.

Ideally, I would like to randomize the session value so I can count the number of unique sessions this user has created. I'm wondering if there is a way to randomize the cookie-session value on every login -- or, should I be creating a separate cookie that stores a random value for this purpose?

Thanks!

0 投票
2 回答
501 浏览

node.js - 服务器发送的 cookie 没有覆盖现有的 cookie

我有一个用于会话管理的express应用程序和使用模块。cookie-session应用程序有 2 个路径https://example.com/abc/defhttps://example.com/abc/ghi. 如果我首先访问任何路径,那么它会设置一个 cookie,但如果我将 URL 更改为其他路径,那么我可以看到服务器正在响应开发人员控制台中 cookie 的新值,但它没有在浏览器中更新。知道是什么阻止了 cookie 更新吗?

0 投票
1 回答
917 浏览

node.js - 重新启动浏览器后,我的 cookie 不再存在

cookieSession用来处理会话事务。没问题,除非我重新启动浏览器,我的会话不会持续。我希望会话每次都保持活跃并且永不过期。

这是我的设置

有什么建议吗?

0 投票
1 回答
52 浏览

javascript - 表示应用级中间件和cookieSession,需要从之前的中间件中添加参数

我正在尝试将参数从一个中间件传递到下一个中​​间件。第一个中间件只是在 req.cookieKey 中存储一个密钥。第二个中间件使用 express 的cookie-session。通常我会知道如何执行此操作,但是当我尝试在第二个中间件中返回 cookieSession( 时,出现了问题。请参阅下面的代码和底部链接的 codesandbox.io 上的示例。

这个中间件首先出现:

在我的路线中,我打电话给:

如果我不尝试从 SecretManager(第一个中间件)添加密钥并且我(req, res, next) =>从第二个中间件中删除额外的功能层,它会起作用。

我希望我可以使用我之前设置的 req.cookieKey,然后只返回 cookieSession 函数,但这似乎不起作用。我进行了测试,以确保在设置 cookie 中间件时可以获得 req.cookieKey,但由于某种原因,我无法让 cookieSession 正常工作。有人有什么建议吗?我已经包含了工作版本而没有在此处传递参数:https ://codesandbox.io/s/l2lw7499q9

0 投票
1 回答
1724 浏览

node.js - Passport 序列化和反序列化与 JWT

我在我的应用程序中使用passport-local,passport-jwt模块进行身份验证策略。我试图了解我是否还需要使用passport.serialize()passport.deserialize()方法。据我了解,这些方法使用会话来存储用户信息。我怀疑使用这些方法的目的已经使用JwtStrategy. 或者我在这里完全错了?

我尝试查看网络,但无法获得太多信息。

这是我的 JWT 策略代码

如果我的假设有误,请纠正我。

0 投票
1 回答
494 浏览

express - express cookie 未在响应中设置,未在下一个请求中显示

有几个活动部件,所以很难知道在这里调试什么。

我在一个 localhost 端口上有一个 Web 应用程序,在另一个 localhost 上有一个简单的助手,它运行一个带有几个端点的 express NodeJS 应用程序。

我看到的基本问题是我在快速应用程序上的 cookie 会话对于后续调用是空的,我什至没有看到它在第一个响应中被发回。

设置

客户端对 express 应用程序进行基本的 GET ajax 调用(目前是 jQuery)。

http为会话 cookie 设置了限额:

我在 express 应用上设置了跨域请求:

并且请求似乎没有问题地完成,因为响应机构是我所期望的。

请求处理程序的内容是:

我总是从 ajax 调用中得到第二个响应“good - 2”。日志始终将会话显示为{}

可能值得注意的是,Chrome devtools 会为请求标头显示“显示临时标头”,而set-cookie不是在响应标头中显示。AJAX 是对端点的简单 GET,其中传入一个参数。

更新

刚才我想到尝试不使用 AJAX 调用。直接点击 URL 获取 cookie 并按预期保持会话。这可能会改变问题的动态。

0 投票
0 回答
54 浏览

php - session.cookie_secure 不保存

我正在使用会话来创建临时文件下载链接。每次发出新请求时,会话都会重置。我发现一个线程谈论打开session.cookie_secure。但是每当我尝试将其设置为onor1时,它都不会保存。

这是我在 php 文件中尝试的内容:

  • ini_set('session.cookie_secure', '1');
  • @ini_set('session.cookie_secure','1');
  • @ini_set('session.cookie_secure','On');

这是我在 php.ini 文件中尝试的内容:

  • session.cookie_secure = 1
  • session.cookie_secure = on

难道我做错了什么?我应该怎么做才能打开session.cookie_secure?有什么我可以做的而不是设置session.cookie_secure吗?

0 投票
1 回答
248 浏览

amazon-web-services - auth0+passport.js 超过 1 个实例的重定向过多

基础设施:

云:aws beanstalk 为容器代理服务器应用程序负载均衡器打开 nginx - 仅限 https,默认进程 (https) 私有子网中的 2+ 个实例启用端到端加密,遵循 https://docs.aws.amazon.com/elasticbeanstalk/latest /dg/configuring-https-endtoend.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-docker.html

运行 docker 的实例实例上的自签名证书

在本地,我们有一个 3 容器来模仿基础设施,

1 nginx:443 作为负载均衡器和 https 反向代理 2 应用程序容器:分别是 3000:3000、3001:3001 所以,还没有端到端加密

软件:Autho Passport ( https://github.com/auth0/passport-auth0 ) express react cookie-session 包

工作流程:打开网站,点击登录链接,然后将我们重定向到auth0登录页面,输入用户名/护照后,我们点击提交。

当我们运行超过 1 个实例时,我们会遇到“重定向太多次”。如果我在 aws 中打开目标组的粘性会话,问题就会消失。

在尝试本地 docker 环境时,我们看到了同样的情况。

在这段代码中,

逻辑总是命中 - if (!user),我们不确定为什么在多实例、负载均衡器设置中会发生这种情况。

更新:

对不起,我是新手,

我想知道我是否可以使用 cookie-session 而不是 express-session,因为 JWT 不应该在服务器中存储信息。

我之所以问,是因为我已经阅读了一些护照和 Auth0 的教程,并且它也只提到了表达式会话。

由于 Auth0 使用 JWT,我可以使用 cookie-session 吗?如果是这样,我会做错什么?

PS。这是我的会话配置:

请提供建议和帮助。谢谢!周杰伦