0
respostas

Salvar cookie no navegador com NODEJS e Express

Não estou conseguindo salvar cookie no navegador pelo NodeJs e express. Já tentei vários tutoriais (inclusive aqui no Stack), mas nenhuma alternativa que tentei deu certo.

Quando olho no Network, vejo que a resposta é devolvida com Cookie certinho, mas não salva no navegador!

Minha árvore contém: No Beck-end/servidor: app.js, server.js e algumas páginas de Rotas (js tbm). No front-end: página de login em html, e envio dos dados (FETCH) em js.

APP.JS

import express from "express";
import * as dotenv from "dotenv";
import fRouter from "../../2.service/routes/A.index.js";
import cookieParser from "cookie-parser";
import cors from "cors";
const app = express();
export default app;
dotenv.config();

app.use(cookieParser());
app.use(cors({
    origin: 'http://fivil.equilibre.eng.br',
    credentials: true
}));

app.use(express.json()); //
app.use(express.urlencoded({ extended: true }));


fRouter(app);
SERVER.js:

import app from "./app.js";
import {} from "dotenv/config";
// import db from "../configDb/dbConect.js";

app.listen(3333, () => {
  // dbConnect();
  console.log(
    `server is running on port: (3333); .env.PORT: ${process.env.PORT} `
  );
});
userRouter.JS:
import express from "express";
import userDataRegisterValidation from "../busnessRule/login e register/register/userDataRegisterValidation.js";
import userInputLoginValidation from "../busnessRule/login e register/login/userDataLoginValidation.js";
import cookieParser from "cookie-parser";
import jwt from "jsonwebtoken";
const userRoutes = express.Router();

userRoutes

  .post("/userLogin", (req, res) => {
    teste();
    async function teste() {
      var statusLogin = await userInputLoginValidation(req.body);
      console.log("Status do login é: " + statusLogin);
      if (statusLogin) {
        let token = jwt.sign(
          {
            id_user: statusLogin, // aqui é o CPF criptografado com SHA512
            //adicionar número randomico e salvar em alguma variável do banco de dados do usuário a cada login?
          },
          process.env.JWT_KEY
        );
        console.log("o JWT_KEY é:" + process.env.JWT_KEY)

        res.cookie("access_token", "token Aqui. Teste");

          res.json({ token: token });
      }
      if (!statusLogin) {

        res
          .clearCookie("access_token")
          .status(401).json({ msg: "authentication failed" });
      }
    }
  })

Aqui faço o FETCH (js):

async function sendPostUserLogin(type, a, b) {
  reqBody = {
    cpf: a,
    pwd: b,
  };

  fetch(`http://xx.xx.xxx:3333/auth/userLogin`, {
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json",
      mode: 'no-cors',
    },

    withCredentials: true,
    method: "POST",
    body: JSON.stringify(reqBody),
  })
    .then((res) => {
      console.log(res)




    }) //limpar campo
    .catch(err => {
      console.log(err)
    });
}