【问题标题】:Client cookie not stored properly in redis store using express in node.js客户端 cookie 未在 node.js 中使用 express 正确存储在 redis 存储中
【发布时间】:2014-05-25 13:34:23
【问题描述】:

我正在使用 express 和 node.js 开发一个应用程序,并使用 redis 作为会话存储。首先,我将向您展示我的代码。

var express = require('express'),
    redis = require('redis'),

    var app = express();

    app.use(express.urlencoded());
    app.use(express.json());
    app.use(express.cookieParser());
    app.use(express.session({ secret: secret, key: 'express.sid', store: new RedisStore({ host: '127.0.0.1', port: 6379 }), cookie: { maxAge: 3600000 } })); 
    app.use(express.methodOverride());

这对我来说很好,但是当我在浏览器中看到我的请求标头时,它显示的 cookie 值如下。

Cookie:express.sid=s%3AmF_egbthwH9xtg6E3ts9HHLn.l9zuDq1IcApdTUwIP96vpRSTiDLA99iQS2T4HVpV0tE

但是当我使用 redis-cli 签入 redis 时,我只显示了“sess:”键下的一半键,如下所示。

sess:mF_egbthwH9xtg6E3ts9HHLn

我有什么问题/错误吗?

【问题讨论】:

    标签: node.js express redis session-cookies


    【解决方案1】:

    尝试编码'.' (点)在设置 cookie 之前。它应该工作。某些字符不能在 cookie 值中使用。

    【讨论】:

    • 感谢@adi,但我不清楚您的回答。我必须在哪里添加“。”(点)?
    • 在您的cookie中,值中有一个句点。请用 %2E 替换它并设置 cookie。它应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2012-06-09
    • 1970-01-01
    • 2020-12-06
    • 2014-03-11
    • 2016-04-30
    • 2022-11-30
    相关资源
    最近更新 更多