Ich habe eine Frage zu Berechtigungsrückrufen bei der Arbeit mit der WP Rest API. Ich habe ein paar Endpunkte mit register_rest_route registriert und möchte sie einfach sichern, damit Sie nicht auf den Inhalt zugreifen können, wenn Sie nicht angemeldet sind.
add_action('rest_api_init', 'register_custom_endpoints');
function register_custom_endpoints(){
register_rest_route($base, $endpoint, [
'methods' => 'POST',
'callback' => function($request){
// Return JSON data
},
'permission_callback' => function($request){
// This always returns false
return is_user_logged_in();
},
]);
}
Ich denke, meine Logik hier ist richtig, aber is_user_logged_in()
gibt immer false zurück, was bedeutet, dass ich die Daten nie bekomme, selbst wenn ich tatsächlich angemeldet bin. Alles, was ich bekomme, ist eine 404-Antwort:
{code: "rest_user_invalid_id", message: "Invalid user ID.", data: {status: 404}}
Ich habe das Internet nach Antworten durchsucht und festgestellt, dass ich eine Nonce mit der Anfrage senden muss. Ich habe versucht, es sowohl als Körperdaten als auch als Kopfzeile zu senden. Wenn ich es im Körper sende, kann ich es nicht überprüfen, da es immer falsch zurückgibt. Und wenn ich es als Header sende, bekomme ich die gleiche 404-Antwort wie oben angegeben.
Was übersehe ich hier und was mache ich falsch?
Wenn Sie eingeloggt sagen, meinen Sie Auth-Header?
– ProEvilz
23. November 2017 um 12:40 Uhr
Weil … wie erwarten Sie, angemeldet zu sein, wenn Sie die API verwenden
– ProEvilz
23. November 2017 um 12:40 Uhr
Laut der WordPress-API-Dokumentation sollte ich in der Lage sein, den aktuellen Benutzer in meinem Berechtigungsrückruf zu überprüfen. v2.wp-api.org/extending/adding
– Aktengrube
23. November 2017 um 12:43 Uhr