Como dice el título, estoy construyendo un proyecto simple usando React y Node/Express.js.
Para decirle al cliente si un usuario ha iniciado sesión, estoy usando cookies express.session y las recibo en el cliente usando 'universal-cookie'.
Sin embargo, tengo un problema en el que tengo que hacer clic en cerrar sesión dos veces para que la cookie se borre de las herramientas de desarrollo de Chrome > red > pestaña de cookies. ¿Alguna idea de por qué?
Ruta expresa:
const express = require('express'); const logoutRouter = express.Router(); logoutRouter.get('/', (req, res) => { req.logout(); res.clearCookie('currentsession').redirect('/'); }); module.exports = logoutRouter;Componente de cierre de sesión (Reaccionar):
const Nav = () => { const logout = async () => { await fetch('/logout', { headers : { 'Content-Type': 'application/json', 'Accept': 'application/json' } }); } return ( <nav className='nav-bar'> <p className='title'>The Football Shop</p> <div className='nav-links'> <Link to='/login'> <button>Login</button> </Link> <button onClick={() => logout()}>Logout</button> </div> </nav> ); };index.js (expreso):
app.use(session({ name: 'currentsession', secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: false, cookie: { maxAge: 21600000, sameSite: false, httpOnly: false, } }));