Я установил JWT в соответствии с инструкцией и протестировал точку ожидания / wp-json / jwt-auth / v1 / token через POSTMAN. Но я получаю этот ответ здесь:
Ошибка подключения: php_network_getaddresses: ошибка getaddrinfo: имя или служба не известны
Любой намек?
Кстати: / wp-json / jwt-auth / v1 / token / validate works!
Может быть, что-то испортилось, когда я реализовал внутренний вызов к этой точке отдыха? Вот как я делаю этот звонок:
$request = new WP_REST_Request( ‘POST’, ‘/jwt-auth/v1/token’ );
$request->set_header(“Content-Type”,”application/json”);
$request->set_body(‘{“username”: “‘.$username.'”, “password”: “‘.$password.'”}’);
$response = rest_do_request( $request );
$server = rest_get_server();
$data = $server->response_to_data( $response, false );
$response = $data;
Этот звонок работает, кстати! Он просто недоступен снаружи.
РЕДАКТИРОВАТЬ: Кажется, это связано с пользовательским фильтром. Когда я деактивирую фильтр, точка отдыха снова работает. Проверьте здесь расширение с закомментированным фильтром:
function extend_token( $data, $user ) {
$isProvider = get_user_meta($user->ID, "isProvider", true);
if($isProvider == true)
{
$data['isProvider'] = 'true';
$profileData = get_profile_data_by_userId($user->ID);
$data = array_merge($data, $profileData);
$unitData = get_unit_data_by_userId($user->ID);
$data = array_merge($data, $unitData);
$offerData = get_offer_data_by_userId($user->ID);
$data = array_merge($data, $offerData);
$eventData = get_event_data_by_userId($user->ID);
$data = array_merge($data, $eventData);
}
return $data;
}
//add_filter( 'jwt_auth_token_before_dispatch', 'extend_token', 10, 2 );