Executando verificação de segurança...
1

[DÚVIDA] Axios 401 não-autorizado

Eu estou fazendo uma post request usando axios, e a request exige autenticação, que é o token do usuário logado, no meu cliente api (Insomnia) o token está sendo passado aqui, e está funcionando normal:

texto

Eu criei uma função no meu frontend, todos os parametros estão corretos, chequei todos, incluindo o token do login do site, mas eu ainda recebo erro de 401, e nenhuma das outras request dá erro, então não acho que seja Cors ou algo do tipo:

import axios from 'axios'

export async function createReview(token: string, clientId: string, text: string, rating: number, productId: string) {
    const headers = {
        token: `Bearer ${token}`
    };
    try {
        await axios.post(`http://localhost:4000/api/review/create/${productId}`, {
            text: text,
            rating: rating
        }, { headers })
        alert('funcionou')
    } catch (error) {
        alert(error)
    }
}

no Network dos devtools a request falha mostra o token assim, não sei porque Token está em uppercase, deve ser coisa do Network:
texto

Esse é o Middelware que estou tentando atingir no frontend:

export const AuthMiddleware = async (req: Request, res: Response, next: NextFunction) => {

    const token = req.cookies.token
    let jwtPayload;
    try {

        jwtPayload = <any>jwt.verify(token, process.env.JWT_SECRET as string);
        res.locals.jwtPayload = jwtPayload;
    } catch (error) {
        res.status(401).send();
        return;

    }

    const { clientId, name } = jwtPayload;

    const newToken = jwt.sign({ clientId, name }, process.env.JWT_SECRET as string, {
        expiresIn: "1h"
    });
    res.setHeader("Token", newToken);

    // console.log()
    next();
};

Qual pode ser o erro?

Carregando publicação patrocinada...
1

tenta passar o token via header, posso estar me precipitando mas do jeito que vc está passando o token pode estar incorreto. 1° cria um arquivo de configuração axios
algo assim
`import axios from 'axios';

const axiosInstance = axios.create({
baseURL: 'https://security/auth',
headers:{
'Content-type': 'application/json',
}
});

export default axiosInstance;`

2° passsa o token como header algo nesta linha de raciocínio:
`
const refresh = await http.post('/refresh', state.token, {
withCredentials: true
})

    axiosInstance.defaults.headers.common['Authorization'] = `${token}`
    console.log(data)

`
porém envolve esse código em um try catch para se der algo de errado vc conseguir aplicar uma lógica de tratativa. E não esquece de por um async na função que envolve esse try catch e este bloco de código.