Me gustaría actualizar un perfil de Django existente pero recibo el mensaje de error:
PUT http://127.0.0.1:8000/update_profile/ 401 (Unauthorized)
El error de red específico que recibo es:
detail: "Authentication credentials were not provided."
Esto es lo que activó el detector de eventos cuando se hizo clic en el botón Actualizar perfil:
const handleSubmit = e => { e.preventDefault(); console.log('handle submit',profileUser) const updatedProfileInfo = { username: profileUser.username, email: profileUser.email, first_name: profileUser.first_name, last_name: profileUser.last_name, city: profileUser.city, country: profileUser.country } console.log(updateProfile) updateProfile(updatedProfileInfo); }updateProfile está desestructurado de useContext aquí:
let { user,logOutUser, updateProfile } = useContext(AuthContext)aquí está la función updateProfile:
const updateProfile = (userData) => { axios .put('http://127.0.0.1:8000/update_profile/', { headers: { Authorization: "Bearer" + window.localStorage.getItem('authTokens').access, 'Accept' : 'application/json', 'Content-Type': 'application/json' }, body: userData }) .then(res => { console.log(res) }) }Paso updateProfile a mi perfil a través de ContextData:
let contextData = { user:user, loginUser:loginUser, logOutUser:logOutUser, updateToken: updateToken, updateProfile: updateProfile } ... return( <AuthContext.Provider value={contextData} > {children} </AuthContext.Provider> ) Así es como se almacena mi token de acceso en localStorage authTokens: {"access":****,"refresh":*****}