es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se pueden establecer cookies desde el backend hacia el frontend al desplegar el sitio web.

Estoy usando Nodejs para mi servidor y Reactjs para mi cliente. En mi cliente, utilizo Axios para realizar solicitudes de poste/get al servidor. Durante el desarrollo, todo funciona perfectamente bien, los datos se obtienen y las cookies se establecen correctamente. Sin embargo, cuando despliego mi servidor y cliente a Heroku y Netlify respectivamente, de repente las cookies no se establecen.

Aquí está mi código de servidor:


dotenv.config() const server = express(); server.use(cors({origin: "https://frontendname.com", credentials: true})); server.use(express.json()); server.use(express.urlencoded({extended:true})) server.use(cookieParser()) server.use("/", fetchData) server.listen(process.env.PORT, ()=>console.log(Server listening on PORT ${process.env.PORT})) mongoose.connect(process.env.MONGO_URI, {useNewUrlParser: true, useUnifiedTopology: true}).then( () => { console.log("connected to mongoose") }).catch((error) => console.log(error.message))

Mi código de servidor API

res.status(201) .cookie(“accessToken”, accessToken, {domain:”frontendwebsite.com”, httpOnly: true, sameSite: ‘strict’, path: ‘/’, expires: new Date(new Date().getTime() + 60 * 1000 * 4)}) .cookie(“refreshToken”, refreshToken, {domain:”frontendwebsite.com”, httpOnly: true, sameSite: ‘strict’, path: ‘/’, expires: new Date(new Date().getTime() + 60 * 1000 * 96)}) .json({message: “login verified”, username: req.body.username}) .send()

Mi código de cliente API:

axios.defaults.withCredentials = true
export const loginAuth = async (credentials) => { 
    return await axios.post("https://backendname.herokuapp.com/loginAuth", credentials).then((res) => {

    return res
})


}

Tengo una fuerte sensación de que se debe al nombre de dominio que no está correctamente en “res.cookie”. Desde que en mi desarrollo cuando estoy usando localhost para el servidor y el cliente, funciona. Mi cliente está alojado en Netlify y el servidor está alojado en Heroku. Mi cliente tiene un nombre de dominio personalizado que obtuve de GoDaddy. Usé Netlify DNS en ese nombre de dominio. ¿Algún ideas?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema puede estar relacionado con el nombre de dominio que estás usando en la llamada a res.cookie. Dado que estás usando diferentes dominios para tu servidor (Heroku) y cliente (Netlify), es posible que tengas que actualizar el nombre de dominio en la llamada a res.cookie para que coincida con el dominio de tu cliente. Además, es posible que tengas que configurar tus ajustes de DNS para asegurarte de que el nombre de dominio apunte al servidor correcto.

Comments are closed.