Проблема с Invaild Grant в маркере Xero OAuth2.0 Refre sh - PullRequest
0 голосов
/ 07 января 2020

Я использую API Xero OAuth2.0, обновляю токен, как только срок его действия истек. Xero Documentation Я храню токен в файле JSON, чтобы я мог получить его в следующий раз.

Ответ Erorr:

{
"error": "invalid_grant"
}

Пожалуйста, ознакомьтесь с кодом ниже б

1009 *

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Срок действия токена доступа 30 minutes. А срок действия неиспользованных токенов sh истекает через 60 days. Если вы не обновите sh свой токен доступа в течение 60 дней, пользователю потребуется повторно авторизовать ваше приложение.

  • Если вы выполняете токен refre sh успешно вы получаете new refresh token с новым токеном доступа
  • Если по какой-либо причине вы не получите ответ после выполнения токена refre sh, вы можете повторить попытку обновления старого токена в течение льготного периода 30 минут
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://identity.xero.com/connect/token?=",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
 'XXXXXXXXXXXXX','client_secret' =>
 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYY'),
  CURLOPT_HTTPHEADER => array(
    "grant_type: refresh_token",
    "Content-Type: application/json",
     ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
0 голосов
/ 07 января 2020

Invalid_grant - это стандартный код ответа об ошибке, когда срок действия маркера refre sh истек.

Общие времена жизни токенов выглядят примерно так: * токен доступа = 60 минут * Refre sh токен = 8 часов

Когда срок действия маркера refre sh истек, вы должны заставить пользователя снова войти в систему.

...