连接 Mongo 错误:"表达式会话已弃用 req.secret;提供秘密选项"



我只是试图通过以下教程实现身份验证和会话到我的应用程序。我目前卡住的问题可能是由于更新的软件包。我正在使用express-sessionconnect-mongo,但我一直得到错误"提供秘密…">

const express = require('express');
const session = require('express-session');
const mongoose = require("mongoose")
const MongoStore = require("connect-mongo")
const cors = require("cors");
const axios = require('axios');
const User = require('./models/user')
const app = express()
mongoose.connect(process.env.ATLAS_URI).then(console.log("MongoDB Connection Success")).catch(err => console.log("MongoDB Connection Failed" + err))
// For backend and express init
app.use(express.json());
app.use(express.urlencoded({ extended: false }))

app.use(session({
sercret: 'random secret',
resave: false,
saveUninitialized: true,
store: MongoStore.create({ mongoUrl: process.env.ATLAS_URI }),
}));

有关更多上下文,我所遵循的指南是https://medium.com/swlh/set-up-an-express-js-app-with-passport-js-and-mongodb-for-password-authentication-6ea05d95335c

要将库从V3迁移到V4,需要重新安装依赖项。

如果您使用npm

  1. npm uninstall connect-mongo
  2. npm uninstall @types/connect-mongonpm install connect-mongo

如果您使用的是纱线

  1. 纱删除connect-mongo

  2. yarn remove @types/connect-mongo

  3. yarn add connect-mongo

下一步是导入依赖项

Javascript:

const MongoStore = require('connect- mongodb ');

:

从'connect-mongo'导入monstore;

使用MongoStore. Create (options)代替new MongoStore(options)创建存储

app.use(会话({秘密:"foo",存储:MongoStore.create(选项)}));

最新更新