I have a logout button, which sends a POST request. After that it should redirect the user to the main page, but nothing happens. I also tried to set the status code to 302, 303...
Code:
//on click this is executed
function logout() {
fetch('/logout', { method: 'POST' });
}
//this is called on POST request
const logout = (_req, res) => {
res.clearCookie('token');
res.locals.payload = undefined;
res.redirect('/'); //problem
};
//logged requests
POST /logout 302 23 - 0.865 ms
GET / 304 - - 6.058 ms
If your /logout
endpoint accepts GET requests, try redirecting the user there instead. For example:
function logout() {
document.location = '/logout';
}
Otherwise, add a redirect in JavaScript once the cookies are cleared:
async function logout() {
await fetch('/logout', { method: 'POST' });
document.location = '/';
}