首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用express-session、connect-mongo和mongoose存储会话

使用express-session、connect-mongo和mongoose存储会话
EN

Stack Overflow用户
提问于 2021-08-19 03:03:17
回答 1查看 252关注 0票数 0

我正在寻找关于使用Express- session,connect-mongo和Mongoose设置基于会话的身份验证的指南。目前,它只是为每个请求生成一个新的UUID,而不会将任何内容保存到会话集合中。我是不是漏掉了什么明显的东西?

index.js

代码语言:javascript
复制
const mongoose = require("./db/connection");
const express = require("express");
const cors = require('cors')
const session = require('express-session')
const MongoStore = require("connect-mongo");
const app = express();
const { v4: uuidv4 } = require('uuid');

//Register .env file
require('dotenv').config()


//Middleware
app.use(express.json());
app.use(session({
  genid: (req) => {
    return uuidv4()
  },
  secret: process.env.EXPRESS_SESSION_SECRET,
  resave: true,
  saveUninitialized: false,
  cookie: { maxAge: 24 * 60 * 60 * 1000 },
  store: MongoStore.create({
    client: mongoose.connection.getClient(),
    dbName: process.env.MONGO_DB_NAME,
    collectionName: "sessions",
    stringify: false,
    autoRemove: "interval",
    autoRemoveInterval: 1
    })
  }) 
);

connection.js

代码语言:javascript
复制
const mongoose = require("mongoose");
require('dotenv').config()

mongoose.connect(`mongodb://devroot:devroot@localhost:27017/${process.env.MONGO_DB_NAME}?authSource=admin`, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
  useCreateIndex: true
});


mongoose.connection
  .on("open", () => console.log("The goose is open"))
  .on("close", () => console.log("The goose is closed"))
  .on("error", (error) => {
    console.log(error);
    process.exit();
  })

module.exports = mongoose;
EN

回答 1

Stack Overflow用户

发布于 2021-08-19 12:35:04

发布以获得可见性;这与以下内容相关:

代码语言:javascript
复制
saveUninitialized: false

将其更改为true会强制保存到存储中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68841518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档