Conflito de autenticação entre Itools x Woocommerce

Neste tutorial será apresentado a resolução do conflito de autenticação entre o Itools x Woocommerce. Quando o Plugin “JWT Authentication for WP REST API” estiver configurado na loja.

Cenário: Quando o Itools realiza uma solicitação para o Woocommerce, ele exibe a seguinte mensagem de erro “jwt_auth_bad_auth_header Authorization header malformed.”

Informações técnicas sobre o erro: Esse plugin é responsável por garantir que todas as requisições feitas em uma api do WordPress sejam  autenticadas com algum token gerado por parte da loja. E quando o token não é passado na requisição é exibida a mensagem de erro “jwt_auth_bad_auth_header Authorization header malformed.”.

Solução: O que vamos fazer é simplesmente, em todas as requisições recebidas pelo WordPress, o token seja colocado automaticamente no cabeçalho da requisição.

1. Com acesso a nível de FTP, navegue até as pastas de plugins do WordPress (wp-content/plugins), encontre a pasta “jwt-authentication-for-wp-rest-api“, e vá para a pasta “public/class-jwt-auth-public.php”.

2. Abra o arquivo e adicione a seguinte instrução if após a list($token) = sscanf($auth, 'Bearer %s'); na linha 250:

if (!$token) {

// Get token using basic auth
list($username, $password) = explode( ‘:’, base64_decode( substr( $auth, 6 ) ) );
$request = new WP_REST_Request( ‘POST’, ‘/wp-json/jwt-auth/v1/token’ );
$request->set_param( ‘username’, $username );
$request->set_param( ‘password’, $password );
$JWT = new Jwt_Auth_Public(‘jwt-auth’, ‘1.1.0’);
$token = $JWT->generate_token( $request );
if (is_array($token) && isset($token[‘token’])) $token = $token[‘token’];
return;

}

3. Substitua as variáveis “$username” e “$password” acima pelas credenciais administrativas da loja.

Qualquer dúvida envie para [email protected]

0