Así que estoy tratando de crear un enlace de refresco en reaccionar. y nodejs con express como backend.
mi código de fondo se ve así
exports.refreshToken = (req, res) => { const oldToken = req.headers.authorization.split(" ")[1] if(oldToken == null ) return res.status(500).send({message: "Token is empty"}) console.log(myJwt.refreshSecretKey) console.log(oldToken) jwt.verify(oldToken, myJwt.refreshSecretKey, (err, user) => { if(err) res.status(500).send({ msg: err || "Error on refreshing your token" }) else res.send({ refreshToken: generateRefreshToken() }); }) };el problema es que cuando pruebo este punto final con Postwoman (extensión de Chrome) funciona
pero cuando intento con React + axios, el retorno del servidor es
{"msg":{"name":"JsonWebTokenError","message":"invalid signature"}}aquí está mi código de reacción
import axios from '../api/axios' import useAuth from './useAuth' const useRefreshToken = () => { const Auth = useAuth() const refresh = async () => { console.log(Auth.auth.token) const response = await axios.get("user/refresh", { withCredentials: true, headers: { Authorization: `Bearer ` + Auth.auth.token } }) Auth(prev => { console.log(JSON.stringify(prev)) console.log(response?.data?.refreshToken) return {...prev, token: response.data.refreshToken} }) return response.data.refreshToken } return refresh } export default useRefreshTokenEstoy enviando el token de acceso incorrecto.
Lo que envío en reaccionar es el primer token de acceso creado. no el refreshAccessToken