Я пытаюсь создать cookie с токеном моего пользователя из бэкэнда, но он ничего не создает, только если я добавляю res.cookie прямо в маршрут, где он находится ...
Чтопроисходит следующим образом: у меня есть маршрут / auth, / setCookies, / getCookies ... В / auth маршруте пользовательский токен создается с помощью JWT и после этого он отправляется с AXIOS.POST на маршрут / setCookies, но делаеттак что ничего не происходит.Файл cookie не создается.
COOKIES
module.exports.createUserAuthCookie = (req, res) => {
try {
const { cookieName, cookieData } = req.body;
const cookieParams = {
httpOnly: true, // COOKIE ENVIADO APENAS POR HTTPS E NÃO DISPONIBILIZADO PARA O CLIENTE JAVASCRIPT VANILLA
signed: true, // COOKIE ASSINADO COM SHA1 BASE64, COM SEGURANÇA DE URL DE 27 BYTES...
maxAge: 300000 // 5 MINUTOS PARA EXPIRA
};
// CRIA UM COOKIE NÃO CRIPTOGRAFADO, PARA AMBIENTE DE DESENVOLVIMENTO
res.cookie('cookieName', 'cookieData', { plain: true });
console.log(req)
// CRIA UM COOKIE CRIPTOGRAFADO, PARA AMBIENTE DE PRDOUÇÃO
//res.cookie(cookieName, cookieData, cookieParams);
res.status(200).send({ data: 'COOKIE DE AUTENTICAÇÃO DO USUÁRIO CRIADO COM SUCCESSO!' }).end();
} catch (error) {
res.status(500).send({ data: 'OCORREU UM ERRO INTERNO!' }).end();
}
};
module.exports.getCookies = (req, res) => {
try {
// COOKIE NÃO ASSINADO PARA TESTE EM AMBIENTE DE DESENVOLVIMENTO HTTP
const { cookies } = req;
console.log(cookies)
//res.status(200).send({ data: cookies }).end();
// COOKIE ASSINADO PARA PRODUÇÃO EM AMBIENTE DE DESENVOLVIMENTO HTTPS
//const { signedCookies } = req;
//res.status(200).send({ data: signedCookies }).end();
} catch (error) {
console.log(error)
res.status(500).send({ data: 'OCORREU UM ERRO INTERNO!' }).end();
}
};
/ auth
const JWTMiddleware = require('../../../middlewares/authentication/user/JWT');
const HTTPService = require('../../../services/HTTP/service');
module.exports.sendResponse = (req, res) => {
/** @todo CRIAR E INSERIR A FUNÇÃO DE CONSUMO DE USUÁRIOS DA ALIANSCE */
/** TEMPORÁRIO */
const {username, password} = req.body;
if(username !== "1" && password !== "1"){
res.status(401).send({ data: 'NÃO AUTORIZADO!' }).end();
} else {
try {
// CRIA O TOKEN COM JWT A PARTIR DO USERNAME
JWTMiddleware.createUserToken(username);
// CRIA O COOKIE COM O TOKEN DO USUÁRIO
HTTPService.data = { cookieName: 'user_token', cookieData: JWTMiddleware.token };
HTTPService.setUserAuthCookie().then(() => {
res.status(200).send({ data: 'AUTORIZADO!' }).end();
}).catch(() => {
res.status(500).send({ data: 'OCORREU ALGUM ERRO INTERNO!' }).end();
});
} catch (error) {
res.status(error.response.status).send({ data: error.response.data }).end();
}
}
}
http:
const axios = require('axios');
class Service {
set data(object){ this.axiosData = object; }
get data( ){ return this.axiosData; }
async setUserAuthCookie(){
return await axios.post('http://localhost:3000/setUserAuthcookie', { cookieName: 'user_token', cookieData: '123456' });
}
async getUserAuthCookie(){
return await axios.post('http://localhost:3000/getcookies', this.data);
}
}
module.exports = new Service;