cuando ingresa al sitio, las cookies se configuran y todo va bien, pero cuando recarga la página, las cookies configuradas se eliminan
respuesta del inicio de sesión (atrás):
export const sendAccessTokenAndRefreshToken = (response:ServerResponse, accesstoken:string, refreshtoken:string) => { response.writeHead(200, { 'Content-Type': 'text/json; application/json', "Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,PATCH,OPTIONS", "Access-Control-Allow-Origin": "http://localhost:3000", "Access-Control-Allow-Headers": "Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept, Authorization", 'Set-Cookie': [`refreshtoken=${refreshtoken}; Secure; HttpOnly; SameSite=None; Path=/; Max-Age=99999999;`] }); response.end(JSON.stringify({accesstoken})); }opciones de respuesta (cors):
response.writeHead(200, { 'Content-Type': 'text/json; application/json', "Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Origin": "http://localhost:3000", "Access-Control-Expose-Headers": "Authorization", "Access-Control-Allow-Headers": "Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept, Authorization", }); response.end(JSON.stringify({message: 'Cors Work!'}));cuando se realiza el inicio de sesión:
ingrese la descripción de la imagen aquí
después de recargar el sitio:
ingrese la descripción de la imagen aquí
en esta imagen se puede ver al enviar una solicitud de publicación, se muestran las cookies, pero después de un reinicio desaparece
ingrese la descripción de la imagen aquí
inicio de sesión frontal.js:
const body = { login: login_input.value, password: password_input.value } fetch('http://127.0.0.1:3000/login', { method: 'POST', mode: 'cors', headers: { 'Content-Type': 'application/json' }, credentials: 'include', body: JSON.stringify(body) }) .then((response) => response.json()) .then((json) => { localStorage.setItem('token', json.accesstoken);¿Cómo resolver este problema? Traté de usar la extensión del navegador cors, pero ni siquiera eso ayudó.
¿Cómo resolver este problema sin recurrir a marcos extraños?
Sospecho que es el uso de las comillas ' y ` en el siguiente código:
"Access-Control-Allow-Headers": "Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept, Authorization", 'Set-Cookie': [ refreshtoken=${refreshtoken}; Secure; HttpOnly; SameSite=None; Path=/; Max-Age=99999999; ]
Elimine el '` y también elimine el [], tampoco se supone que debe tener eso.
Algo como:
"Set-Cookie": "refreshtoken=${refreshtoken}; Secure; HttpOnly; SameSite=None; Path=/; Max-Age=99999999;"entonces es una pregunta diferente si es una buena idea almacenar los tokens de actualización en una cookie, pero esa es una discusión diferente.