我按照说明安装了 JWT,并通过 POSTMAN 测试了 /wp-json/jwt-auth/v1/token 休息点。但我在这里得到这样的回应:
连接失败:php_network_getaddresses:getaddrinfo 失败:名称或服务未知
有什么提示吗?
顺便说一句:/wp-json/jwt-auth/v1/token/validate 有效!
当我对那个休息点进行内部调用时,也许有些事情搞砸了?这是我拨打电话的方法:
$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 );
我发现了这个问题,extend_token函数调用了其他子函数,其中包含带有无效参数的数据库连接。所以我修复了连接,它再次工作了。