Для моего приложения Express я сохраняю сеанс, когда пользователь входит в систему. В React я использую сторонний API, поэтому, когда пользователь успешно входит в систему (и создается сеанс), он направляет их в URL-адрес авторизации API, а затем перенаправляет их на домашнюю страницу приложения.
Как только они вернутся на домашнюю страницу, сеанс больше не сохраняется.
Может ли кто-нибудь сказать мне, как я могу исправить это, чтобы сеанс все еще сохранялся после перенаправления на домашнюю страницу?
Я устанавливаю его здесь в Express. Когда ответ json равен success: true
, пользователь перенаправляется, а затем возвращается на домашнюю страницу.
router.post('/login/:username/:password', (req, res) => {
const username = req.param('username');
const password = req.param('password');
return User
.findOne({username:username})
.then((user) => user.authenticate(password)) // do this to the found user in db
.then(auth => {
if(auth.user !== false) {
req.session.user = auth.user.id
}
res.json({success: auth.user !== false}); // will be true if its authorized and false if not
})
.catch((err) => {
console.log("err.message"); // shows what the error is
}
);
});
Конфигурация моего сеанса в моем приложении. js файл в моем приложении Express:
const express = require('express');
const mongoose = require('mongoose');
const CONFIG = require('./config.json');
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
mongoose
.connect(CONFIG.mongoUrl, {
useNewUrlParser: true,
useUnifiedTopology:true
})
.then(() => console.log('Connected to MongoDB'))
.catch(err => {
console.log(err.message);
console.log('Not connected to MongoDB')
process.exit(1);
});
// Create and configure application
const app = express();
// configure sessions
app.use(session({
saveUninitialized : true,
secret : CONFIG.sessionSecret,
resave : false,
store : new MongoStore({
mongooseConnection: mongoose.connection
})
}));
module.exports = app;