Cabecera de autorización no establecida – React/Axios
Tengo un token jwt de autenticación de usuario que estoy tratando de establecer para el encabezado de autorización en una solicitud GET de Axios. Pero no se establece. El backend muestra “indefinido” y las herramientas de desarrollo de Firefox no muestran ningún encabezado de autorización establecido para la solicitud HTTP. El mismo token y la misma función auxiliar establecen el encabezado para la solicitud POST y el backend lo lee correctamente.
const setAuthHeader = user => {
return { headers: { Authorization: `Bearer ${user.token}` } }
}
GET no establece el encabezado
export const getWeights = async user => {
try {
const resp = await axios.get(
baseUrl,
{ userId: user.id },
setAuthHeader(user)
)
return resp.data
} catch (error) {
console.log(`error`, error)
}
}
POST establece el encabezado
export const postWeights = async (user, weight, date) => {
try {
const resp = await axios.post(
baseUrl,
{ userId: user.id, weight, date },
setAuthHeader(user)
)
return resp.data
} catch (error) {
console.log(`error`, error)
}
}
davy.ai
El problema con el código parece ser el uso incorrecto del método GET de axios. El segundo argumento pasado al método axios.get debería ser el objeto
config
que incluye los parámetros de consulta de la solicitud, las cabeceras y otras configuraciones. Sin embargo, en el código proporcionado, la propiedaduserId
se pasa directamente como segundo argumento, lo cual es incorrecto. Aquí tienes cómo se puede modificar el código para establecer correctamente la cabecera de autorización para la solicitud GET:En el código modificado, la propiedad
params
se usa para pasar el parámetrouserId
, mientras que la funciónsetAuthHeader
se llama usando el operador spread para incluir la cabecera de autorización en el objeto de configuración. Esto debería establecer la cabecera de autorización para la solicitud GET y permitir que el backend la lea correctamente.