Bonjour à tous,
Je travaille actuellement sur l'implémentation d'un système de connexion pour mon site web avec express-session
. Toutefois, j'ai rencontré un problème : lorsque je teste mon code avec Postman, tout fonctionne correctement, mais sur le navigateur (Firefox), la session ne semble pas se sauvegarder correctement se qui m'empêche de pouvoir verifié si un utilisateur est connecté
(J'utilise Vue.js pour le front)
Session {
cookie: {
path: '/',
_expires: 2024-12-25T10:19:06.237Z,
originalMaxAge: 86400000,
httpOnly: true,
secure: false,
sameSite: 'lax'
},
user: {
_id: new ObjectId('6769b32a3e7297fc596228ed'),
email: 'new@hotmail.com',
password: '...',
name: 'Louis',
surname: 'Bertou',
birthDate: '2024-12-12',
__v: 0
}
}
Session {
cookie: {
path: '/',
_expires: 2024-12-25T10:29:36.721Z,
originalMaxAge: 86400000,
httpOnly: true,
secure: false,
sameSite: 'lax'
}
}
fetch("http://127.0.0.1:52807/user/login", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(credentials),
credentials: 'include',
});
const response = await fetch('http://localhost:52807/user/connected', {
method: 'GET',
credentials: 'include',
});
// Sauvegarde de l'utilisateur dans la session
req.session.user = user;
console.log("Session: ", req.session);
res.status(200).json({ message: "User logged in", userId: user._id });
// CORS
app.use(cors({
origin: ['http://localhost:4173'],
credentials: true,
allowedHeaders: ['Content-Type', 'Authorization'],
methods: ['GET', 'POST'],
optionsSuccessStatus: 200,
}));
// Express-session
app.use(session({
secret: process.env.SESSION_SECRET,
resave: true,
saveUninitialized: true,
cookie: {
secure: false, // Non sécurisé car en développement (à mettre à true en production avec HTTPS)
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24, // 1 jour
sameSite: 'lax',
},
}));
sameSite
, secure
) ?express-session
ou cors
pour que cela fonctionne correctement sur le navigateur ?Merci d'avance pour vos retours !