я надеюсь, что кто-нибудь может помочь с этим, мы пытаемся вызвать генерацию токена API внешней аутентификации, вызов в порядке, но мы можем получить значение тела, затем код, который мы используем, я не знаю, почему возвращается номер 1 в теле запроса, я пытаюсь по-разному, но я не знаю, что не так
error_log("\n\n ******************************************TOKEN GENERATION");
$url="http://*.*.*.*:7100/api/clienteExterno/login/authenticate";
$data='{"Usuario":"woocommerce","Password":"Mercaderia2021"}';
$args = array(
'headers' => array(
'Cache-Control' => 'no-cache ',
'Content-Type' => 'application/json',
),
'method' => 'POST',
"blocking" => true,
'body' => $data,
'timeout' => 10
);
$result = wp_remote_post($url, $args);
if ( is_wp_error( $result ) || wp_remote_retrieve_response_code( $result ) != 200 || !isset( $result['body'] ) ) {
$error_message = json_encode($result);
error_log("\n\n ******************************************ERROR TOKEN DEVUELVEJYB" . $error_message);
$return = array('message' => "Error al generar token jyb");
wp_send_json_error($return);
wp_die(0);
}
//$responceData = json_decode(wp_remote_retrieve_body($response), true);
if (wp_remote_retrieve_body($result)){
$response = json_decode(wp_remote_retrieve_body($result),false);
//$response =json_decode($data);
error_log("\n\n ******************************************TOKEN DEVUELVE JYB ARRAY" . print_r($response));
WC()->session->set('tokenjyb', $response);
return $response;
}else{
WC()->session->set('tokenjyb', null);
};
return false;
Ответ напечатан
([headers] => Requests_Utility_CaseInsensitiveDictionary Object
(
[data:protected] => Array
(
[cache-control] => no-cache
[pragma] => no-cache
[content-type] => application/json; charset=utf-8
[expires] => -1
[server] => Microsoft-IIS/10.0
[x-aspnet-version] => 4.0.30319
[x-powered-by] => ASP.NET
[access-control-allow-methods] => *
[date] => Thu, 01 Jul 2021 16:44:58 GMT
[content-length] => 217
)
)
[body] =>"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Indvb2NvbW1lcmNlIiwibmJmIjoxNjI1MTU3ODk4LCJleHAiOjE2MjUxNTk2OTgsImlhdCI6MTYyNTE1Nzg5OCwiaXNzIjoiKiIsImF1ZCI6IioifQ.l3sP5hYM1VZlNro3HZ_VdUACqV9CaH5UZL5mYkS73jk"
[response] => Array
(
[code] => 200
[message] => OK
)
[cookies] => Array
(
)
[filename] =>
[http_response] => WP_HTTP_Requests_Response Object
(
[response:protected] => Requests_Response Object
(
[body] =>"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Indvb2NvbW1lcmNlIiwibmJmIjoxNjI1MTU3ODk4LCJleHAiOjE2MjUxNTk2OTgsImlhdCI6MTYyNTE1Nzg5OCwiaXNzIjoiKiIsImF1ZCI6IioifQ.l3sP5hYM1VZlNro3HZ_VdUACqV9CaH5UZL5mYkS73jk"
[raw] => HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Access-Control-Allow-Methods: * Date: Thu, 01 Jul 2021 16:44:58 GMT Connection: close Content-Length: 217 "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Indvb2NvbW1lcmNlIiwibmJmIjoxNjI1MTU3ODk4LCJleHAiOjE2MjUxNTk2OTgsImlhdCI6MTYyNTE1Nzg5OCwiaXNzIjoiKiIsImF1ZCI6IioifQ.l3sP5hYM1VZlNro3HZ_VdUACqV9CaH5UZL5mYkS73jk"
[headers] => Requests_Response_Headers Object
(
[data:protected] => Array
(
[cache-control] => Array
(
[0] => no-cache
)
[pragma] => Array
(
[0] => no-cache
)
[content-type] => Array
(
[0] => application/json; charset=utf-8
)
[expires] => Array
(
[0] => -1
)
[server] => Array
(
[0] => Microsoft-IIS/10.0
)
[x-aspnet-version] => Array
(
[0] => 4.0.30319
)
[x-powered-by] => Array
(
[0] => ASP.NET
)
[access-control-allow-methods] => Array
(
[0] => *
)
[date] => Array
(
[0] => Thu, 01 Jul 2021 16:44:58 GMT
)
[content-length] => Array
(
[0] => 217
)
)
)
[status_code] => 200
[protocol_version] => 1.1
[success] => 1
[redirects] => 0
[url] =>http://190.131.205.159:7100/api/clienteExterno/login/authenticate
[history] => Array
(
)
[cookies] => Requests_Cookie_Jar Object
(
[cookies:protected] => Array
(
)
)
)
[filename:protected] =>
[data] =>
[headers] =>
[status] =>
)
)
Я не совсем уверен, в чем ваша проблема, но я могу сказать, что значение тела в вашем печатном ответе - это JWT.
Да, но когда я получаю значение, оно отображается как число 1, а не значение токена jwt
Вы не можете вызвать
json_decode
на JWT, вам нужно либо проанализировать, либо просто сохранить его для использования позже. Это отличная библиотека для работы с JWT и PHP.Большое спасибо, я изменю свой код
Я ничего не изменил в этой части, но тот же номер один показывает $response = wp_remote_retrieve_body($result); error_log("\n\n **********************************************ТОКЕН РАЗВИВАТЬ МАССИВ JYB". print_r($response)); *********************************************ТОКЕН DEVUELVE JYB ARRAY1 [01-Jul -2021 17:41:32 UTC] ************************************************* *ТОКН ГЕНЕРАДО 1
я думаю, я знаю, что происходит
Решено, значение сохранено с ""