Создание уникальной сессии для каждого пользователя ⇐ Javascript
Создание уникальной сессии для каждого пользователя
В настоящее время я работаю над веб-приложением todo/tasks, используя Node и Express, мне сложно создать уникальный сеанс для каждого пользователя и соответственно хранить задачи для каждого пользователя, сейчас я пытаюсь добиться этого без аутентификации . для контекста: если вы добавите какую-либо задачу, любой, кто заходит на веб-сайт, сможет ее увидеть. код для моего app.js:
импортировать экспресс из «экспресса»; импортировать bodyParser из «body-parser»; импортировать сессию из «экспресс-сессии»; импортировать мангуста из «мангуста»; импортировать {по умолчанию как connectMongoDBSession} из «connect-mongodb-session»; импортировать {v4 как uuidv4} из «uuid»; //\* константы const resetTime = 1000 \* 60 \* 60 \* 24 \* 30; константное приложение = экспресс(); константный порт = процесс.env.PORT || 3000; const sessionSecret = "UniqueSessionSecret"; const mongoURI =process.env.mongodb_URI; const MongoDBStore = ConnectMongoDBSession (сессия); mongoose.connect(mongoURI, { useNewUrlParser: правда, useUnifiedTopology: правда, }); const store = новый MongoDBStore({ ури: монгоURI, коллекция: "сессии", истекает: сбросВремя / 1000, }); store.on("ошибка", (ошибка) =\> { console.error(`Ошибка MongoDBStore: ${error}`); }); //\* выражать приложение.use( сессия({ имя: "tasks.sid", секрет: sessionSecret, пересохранить: ложь, saveUninitialized: правда, магазин: магазин, }) ); app.use("/public", express.static("public")); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({расширено: true })); app.use("/", express.static("./node_modules/bootstrap/dist/")); //\* переменные //\* запросы приложения app.get("/", (req, res) =\> { если (!req.session.userId) { // Присвояем сеансу уникальный идентификатор req.session.userId = uuidv4(); } res.render("index.ejs", { dateAndDay, addTasks, существует }); }); app.get("/work", (req, res) =\> { res.render("work.ejs", { dateAndDay, AddWorkTasks, ExistWork }); }); app.post("/", (req, res) =\> { if (addedTasks.includes(req.body\["newNote"\]) === false) { if (req.body\["newNote"\] != "") { существовать = ложь; addTasks.unshift(req.body\["newNote"\]); } // } еще { // вар существует = правда; } res.render("index.ejs", { dateAndDay, addTasks, существует }); подождите пять минут(); }); app.post("/work", (req, res) =\> { if (addedWorkTasks.includes(req.body\["newWorkNote"\]) === false) { if (req.body\["newWorkNote"\] != "") { существуетРабота = Ложь; добавленныеWorkTasks.unshift(req.body\["newWorkNote"\]); } } // еще { // существуетРабота = истина; // } res.render("work.ejs", { dateAndDay, AddWorkTasks, ExistWork }); waitFiveMinutesWork(); }); app.listen(port, () =\> { console.log(`Сервер работает на порту ${port}`); }); это мой последний коммит, я удалил код unnessacry, который бесполезно занимал бы место, поэтому, если вы хотите проверить полный репозиторий, вы можете найти его в нижнем колонтитуле того же веб-приложения: www.todowebapp.com
В настоящее время я работаю над веб-приложением todo/tasks, используя Node и Express, мне сложно создать уникальный сеанс для каждого пользователя и соответственно хранить задачи для каждого пользователя, сейчас я пытаюсь добиться этого без аутентификации . для контекста: если вы добавите какую-либо задачу, любой, кто заходит на веб-сайт, сможет ее увидеть. код для моего app.js:
импортировать экспресс из «экспресса»; импортировать bodyParser из «body-parser»; импортировать сессию из «экспресс-сессии»; импортировать мангуста из «мангуста»; импортировать {по умолчанию как connectMongoDBSession} из «connect-mongodb-session»; импортировать {v4 как uuidv4} из «uuid»; //\* константы const resetTime = 1000 \* 60 \* 60 \* 24 \* 30; константное приложение = экспресс(); константный порт = процесс.env.PORT || 3000; const sessionSecret = "UniqueSessionSecret"; const mongoURI =process.env.mongodb_URI; const MongoDBStore = ConnectMongoDBSession (сессия); mongoose.connect(mongoURI, { useNewUrlParser: правда, useUnifiedTopology: правда, }); const store = новый MongoDBStore({ ури: монгоURI, коллекция: "сессии", истекает: сбросВремя / 1000, }); store.on("ошибка", (ошибка) =\> { console.error(`Ошибка MongoDBStore: ${error}`); }); //\* выражать приложение.use( сессия({ имя: "tasks.sid", секрет: sessionSecret, пересохранить: ложь, saveUninitialized: правда, магазин: магазин, }) ); app.use("/public", express.static("public")); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({расширено: true })); app.use("/", express.static("./node_modules/bootstrap/dist/")); //\* переменные //\* запросы приложения app.get("/", (req, res) =\> { если (!req.session.userId) { // Присвояем сеансу уникальный идентификатор req.session.userId = uuidv4(); } res.render("index.ejs", { dateAndDay, addTasks, существует }); }); app.get("/work", (req, res) =\> { res.render("work.ejs", { dateAndDay, AddWorkTasks, ExistWork }); }); app.post("/", (req, res) =\> { if (addedTasks.includes(req.body\["newNote"\]) === false) { if (req.body\["newNote"\] != "") { существовать = ложь; addTasks.unshift(req.body\["newNote"\]); } // } еще { // вар существует = правда; } res.render("index.ejs", { dateAndDay, addTasks, существует }); подождите пять минут(); }); app.post("/work", (req, res) =\> { if (addedWorkTasks.includes(req.body\["newWorkNote"\]) === false) { if (req.body\["newWorkNote"\] != "") { существуетРабота = Ложь; добавленныеWorkTasks.unshift(req.body\["newWorkNote"\]); } } // еще { // существуетРабота = истина; // } res.render("work.ejs", { dateAndDay, AddWorkTasks, ExistWork }); waitFiveMinutesWork(); }); app.listen(port, () =\> { console.log(`Сервер работает на порту ${port}`); }); это мой последний коммит, я удалил код unnessacry, который бесполезно занимал бы место, поэтому, если вы хотите проверить полный репозиторий, вы можете найти его в нижнем колонтитуле того же веб-приложения: www.todowebapp.com
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение