express -сессия не удаляет сессию в mongodb - PullRequest
0 голосов
/ 20 марта 2020
.

счет js (node.js часть)

1002
1004 * сессия: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZTZjZjJiNDY1N2Q3MjQzNzQxMzFjODkiLCJpYXQiOjE1ODQ3MDM3MDF9.A8-gorvV3SI7boHGbtiRh6NXHbnYIR1VnsAzN WwwMTw 1006 * сессия: не определено 1008 *

Назначение: Процесс входа пользователя выполнен успешно. Если вход успешен, он сохраняет информацию в поле mongodb.

enter image description here

Проблема: Когда я пишу строку код ниже, его обычно нужно удалить. Но что бы я ни делал, это не удаляет. Вы можете понять это, изучив разделы console.log.

Если вы хотите просмотреть, я добавлю некоторые коды в индекс. js ниже.

...
const dotenv = require("dotenv");
const session = require("express-session");
const MongodDBStore = require("connect-mongodb-session")(session);
app.use(cors({ origin: "*" }));
app.set("trust proxy", 1);
const mongoURL = process.env.DB_CONNECT;

var db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", function() {});

const store = new MongodDBStore({
  uri: process.env.DB_CONNECT,
  collection: "sessions"
});

app.use(
  session({
    secret: process.env.TOKEN_SECRET,
    store: store,
    resave: false,
    saveUninitialized: false,
    cookie: {
      maxAge: 600000,
      sameSite: "strict",
      secure: false,
      httpOnly: true
    }
  })
);

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use((req, res, next) => {
  res.setHeader("Set-Cookie", "HttpOnly=true;Secure=true;SameSite=None");
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  res.setHeader("Cache-Control", "private");
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, PATCH, POST,  DELETE , PUT, OPTIONS"
  );
  next();
});

mongoose.connect(mongoURL, { useNewUrlParser: true, useUnifiedTopology: true });

const server = http.createServer(app);
server.listen(3000);

Это удаление не причина. Как я могу решить это?

1 Ответ

1 голос
/ 22 марта 2020

Установите cookie-parser модуль и импортируйте его в index.js файл

const cookieParser  = require('cookie-parser'); 

и установите middleware

app.use(cookieParser('secret'));

//Middleware for session
app.use(session({
   secret: process.env.TOKEN_SECRET,
   maxAge: 60000 , // 1min = 60000ms
   resave: true,
   saveUninitialized: true

}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...