Upload File (Avatar) - CSRF-Token invalid
-
Der REST-Endpunkt zum Hochladen von Dateien funktioniert für den Domain-Typ "Avatar" nicht.
Meine Anfrage über POST-Methode: https://intern.church.tools/api/files/avatar/51 samt Datei als multipart/form-data.Ich bekomme folgende Fehlermeldung:
{ "message": "CSRF-Token is invalid", "translatedMessage": "exception.unauthorized", "messageKey": "exception.unauthorized", "args": [], "errors": [] }
Diesen Fehler bekomme ich sowohl über das Swagger-Interface https://intern.church.tools/api als auch über einen eigen zusammengebauten Request (z.B. in PHP mit Guzzle).
In der Dokumentation steht nicht davon dass ein CSRF-Token mitgeschickt werden muss. Wenn dem so ist: Wo bekomme ich über die REST-Api einen CSRF-Token her? In welchem Feld muss ich diesen mitschicken?
VG Lukas
-
@dumbergerl hier findest du die Doku dazu: https://hilfe.church.tools/wiki/0/API-CSRF
-
Danke @davidschilling mit dem CSRF-Token komme ich zumindest einen Schritt weiter!
Allerdings bekomme ich beim Upload immer diesen Validation-Error:
{ "errors": [{ "fieldId": "files", "message": "Nur eine Datei darf für diesen Domain Typ hochgeladen werden." "messageKey": "validation.domainfiles" "args": { "name": "files", "value": null } }] }
Und das obwohl ich die Datei im Multipart mitversende. Hier mal ein Auszug der Guzzle-Request-Options:
[ "headers" => [ "Content-Type" => "multipart/form-data", "CSRF-Token" => "4basio..." ], "multipart" => [ "name" => "files", "filename" => "avatar.png", "content" => "�PNG..." ] ]
Denselben Validation-Error bekomme ich auch, wenn ich gar keine Datei versende.
Kannst du bitte prüfen ob der API-Endpunkt bei dir funktioniert?
Wenn ja: Kannst du einen Beispiel-Request zeigen?VG und vielen Dank schomal!
-
@dumbergerl Schau dir mal diesen Forenbeitrag zu dem Thema an: https://forum.church.tools/topic/8483/song-import-über-die-rest-api/11
Der Endpunkt funktioniert. Der wird auch in CT genutzt im Profil z.b.
-
@davidschilling Danke für den Hinweis und die schnelle Antwort! Das hat mir jetzt tatsächlich den entscheidenden Hinweis gegeben. Jetzt hab ich es zum Laufen bekommen