【问题标题】:Error: secret option required for sessions (espress session)错误:会话需要秘密选项(espress 会话)
【发布时间】:2020-04-28 06:47:43
【问题描述】:

当我尝试使用 apache 和自签名 ssl 证书在 localhost 上运行我的网站时,我总是遇到同样的错误。我不知道为什么会出现这个错误。 这是我的会话持久化,我不知道是否有错误,但我无法想象......再往下你可以找到错误。

我现在对这个问题很迷茫

app.use(cookieParser(sessionSecret));
app.use( session( {
    store: sessionStore,
    secret: sessionSecret, resave: false, saveUninitialized: true,
    cookie: {secure: true, maxAge:24*60*60*1000},
    genid: function (req) {return uuid.v4()}
  }));
app.get('/login*', function (req, res) {console.log("login session is: "+req.session); loadSelectedFile(req, res);});

Error: secret option required for sessions
    at session (C:\xampp\htdocs\node_modules\express-session\index.js:167:12)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\xampp\htdocs\node_modules\express\lib\router\index.js:317:13)
    at C:\xampp\htdocs\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\xampp\htdocs\node_modules\express\lib\router\index.js:335:12)
    at next (C:\xampp\htdocs\node_modules\express\lib\router\index.js:275:10)
    at cookieParser (C:\xampp\htdocs\node_modules\cookie-parser\index.js:56:14)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\xampp\htdocs\node_modules\express\lib\router\index.js:317:13)
    at C:\xampp\htdocs\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\xampp\htdocs\node_modules\express\lib\router\index.js:335:12)
    at next (C:\xampp\htdocs\node_modules\express\lib\router\index.js:275:10)
    at expressInit (C:\xampp\htdocs\node_modules\express\lib\middleware\init.js:40:5)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\xampp\htdocs\node_modules\express\lib\router\index.js:317:13)
    at C:\xampp\htdocs\node_modules\express\lib\router\index.js:284:7

【问题讨论】:

  • sessionSecret是不是代码开头定义的字符串?
  • 嗨,Amir,是的,开头有一个已定义的字符串。我现在尝试了几件事,但它并没有改变。这个问题是否也与自签名证书有关?
  • 我对 SSl 证书了解不多,但根据我用 express 创建的应用程序,这就是我所拥有的 app.use(session( {secret: "String for encrypting cookies.", name: "Cookie_name", cookie: {maxAge:7 * 24 * 3600 * 1000}, proxy: true, resave: true, saveUninitialized: true }));
  • 我可能说的很明显,但是你安装并需要 express-session 吗?
  • 您好阿米尔,非常感谢您的帮助!我仔细检查了 npm express-session 安装,一切正常。但是我没有会话秘密,当我看到你的例子时我才想到它......这很有帮助!

标签: html express-session


【解决方案1】:

这就是帮助我解决错误的原因,

const app = express();
app.use(session({ secret: 'somevalue' }));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-14
    • 2020-08-02
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2021-12-29
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多