Ik heb weinig te zeggen. Dit is mijn hobby blog en als ik in de hobby hoek wat te melden heb, dan zien we dat wel.
Ik zat net een half uurtje te sparren met WordPress, met die ‘application passwords’. Daar moet je toch even induiken. De Authorization header wordt niet met het WP_REST_Request object meegeleverd.
Ik stuur de credentials in een ‘Basic ‘ autorization header vanaf de frontend met de JavaScript btoa() functie, base64 encoded.
Dat lees je weer uit uit de server header.
//Get HTTP request headers
$auth = apache_request_headers();
//Get only Authorization header
$authorizationHeader = $auth['Authorization'];
$base64Credentials = substr($authorizationHeader, 6);
$credentials = base64_decode($base64Credentials);
list($username, $app_password) = explode(':', $credentials);
Dan hoef je alleen nog te checken met wp_validate_application_password() of je application password geldig is voor die gebruikersnaam. En van daaruit kun je, als het een geldige gebruiker is met een geldig password, het profiel van de user opvragen en kijken of die ook wel geautoriseerd zijn.
if ($username && $app_password) {
$validation_result = wp_validate_application_password($username, $app_password);
if ($validation_result === $username ) {
$valid = 'Application password is valid.';
} else {
$valid = 'Invalid application password.';
}
} else {
$valid = 'Missing username or app_password.';
}
Zoiets, dan werkt het wel.