Ошибка «invalid_grant/Неверная подпись JWT». чтобы получить токен доступа с помощью OauthPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка «invalid_grant/Неверная подпись JWT». чтобы получить токен доступа с помощью Oauth

Сообщение Anonymous »

Я долгое время пытался решить эту проблему.
Мне нужно сгенерировать токен доступа с учетной записью службы, чтобы использовать приложение календаря Google.
Сначала я выполняю JWT с библиотекой Firebase /php-jwt на основе сертификата pem, в котором хранится закрытый ключ, предоставленный учетной записью службы Google
После выполнения завивки в Google для получения вышеупомянутого токена выдается следующая ошибка ""valid_grant/ Неверная подпись JWT "

$time = time();

$key = file_get_contents("./certs/certificado.pem");
$token = array(
"iss" => "*****@*******.iam.gserviceaccount.com",
"aud" => "https://www.googleapis.com/oauth2/v3/token",
"iat" => $time,
"exp" => $time+60,
"scope" => "https://www.googleapis.com/auth/calendar.readonly"
);

$jwt = JWT::encode($token, $key);
$decoded = JWT::decode($jwt, $key, array('HS256'));
echo $jwt;
print_r($decoded);

$decoded_array = (array) $decoded;
$grant_type = "urn:ietf:params:oauth:grant-type:jwt-bearer";

JWT::$leeway = 600;
$decoded = JWT::decode($jwt, $key, array('HS256'));


Пример, где я подключаюсь к Google, чтобы получить токен доступа

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://www.googleapis.com/oauth2/v3/token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"grant_type=".urlencode($grant_type)."&assertion=".urlencode($jwt));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close ($ch);
echo($result);


Google выдает следующую ошибку

{
"error": "invalid_grant",
"error_description": "Invalid JWT Signature."
}


Подробнее здесь: https://stackoverflow.com/questions/567 ... -using-oau
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»