GOOGLE ADS

Freitag, 22. April 2022

Berechtigungsproblem bei Axios-Post-Anfrage

Ich habe einen Rücken in Django mit Django Rest Framework während einer Post-Anfrage. Ich möchte, dass ein Autorisierungs-Token eingegeben wird, um zu wissen, ob der Benutzer angemeldet ist, um die Anfrage zu validieren. Aber wenn ich in meiner Front in React native die Autorisierung mit dem Token des Benutzers in den Header einfüge, aber wenn ich die Anfrage durch Drücken der Taste validiere, geht sie in den Fang und es sagt mir einen 401-Fehler, damit ich es nicht tue habe die Erlaubnis. Außer wenn ich es mit dem Postboten mache, melde ich mich an, rufe das erhaltene Token ab und füge es in die Autorisierung ein und starte dieselbe Anfrage, bei der ich einen 201-Status erstellt habe.

Hier ist mein Code in React Native Front:

const submitButton = async () => {
if (!gardenName.trim()) {
alert("Veuillez renter un nom de jardin s'il vous plait!");
return;
}
setLoading(true);
try {
const jsonValue = await AsyncStorage.getItem("user");
const parsedUserData = JSON.parse(jsonValue) || {};
setUser(parsedUserData);
const data = new FormData();
data.append("user", parsedUserData.user.id);
data.append("name", gardenName);
const response = await axios.post(`${baseUrl}/garden/`, data, {
headers: {
Authorization: `Token ${parsedUserData.token}`,
"Content-Type": "multipart/form-data",
},
});
if (response.status === 201) {
alert(`Votre jardin ${gardenName} a bien été crée`);
setLoading(false);
setGardenName("");
//navigation.replace('BottomNavigation');
} else {
throw new Error("Erreur");
}
} catch (e) {
setLoading(false);
alert(e.message);
console.log(e);
}
};

Ich verstehe nicht, was in der Konfiguration meiner Axios-Anfrage fehlt, wenn Sie mich aufklären können, danke!


Lösung des Problems

hast du deine INSTALLED_APPS so aktualisiert;

INSTALLED_APPS = [
...
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
....
]

Außerdem müssen Sie Ihre REST_FRAMEWORK-Einstellungen aktualisieren. Sie sollten diese Zeilen hinzufügen.

'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...