He estado trabajando en un proyecto de node js y necesito configurar dos cookies diferentes. Pero cuando los configuro, el segundo siempre sobrescribe al primero. aquí está el código que estoy usando a continuación
res.setHeader('set-cookie', [ 'x-authsession=' + cookieParsed['x-authsession'] + '; Path=' + cookieParsed['Path'] + '; Expires=' + cookieParsed['Expires'] + `; `, ] ); res.setHeader('set-cookie', [ 'x-device=' + cookieParsed['x-device'] + '; Path=' + cookieParsed['Path'] + '; Expires=' + cookieParsed['Expires'] + `; `, ]);pero solo x-device se almacena en el navegador. Alguien sabe como arreglar esto por favor?
En lugar de modificar explícitamente el encabezado set-cookie , puede usar res.cookie .
res.cookie( 'x-authsession', cookieParsed['x-authsession'], { path: cookieParsed['Path'], expires: cookieParsed['Expires'] } ); res.cookie( 'x-device', cookieParsed['x-device'], { path: cookieParsed['Path'], expires: cookieParsed['Expires'] } );Además, como se dice aquí ,
Para enviar varias cookies, se deben enviar varios encabezados Set-Cookie en la misma respuesta.
Pensamientos secundarios, parece que está intentando usar las cookies de sesión manualmente. Eso no es una buena idea para hacer. En su lugar, consulte el paquete express-session exprés en npm.
Esto funciona bien para mi:
res.setHeader("Set-Cookie", [ cookie.serialize("cookie1", "data1"), cookie.serialize("refreshToken", refreshToken) ] ) res.end()