0
Đăng nhập bằng gmail bằng firebase. Lỗi khi refresh token bằng google api client
Em chào các bác. Em đang có vấn đề với firebase và google API.
Vấn đề như sau
Em đang làm front-end react-js và sử dụng firebase để đăng nhập với gmail.
firebase trả về access_token và refresh_token. Sau đó em request access_token và refresh_token lên server của em.
Tất cả mọi thứ đều ổn (gửi mail, ...)
nhưng sau 1 tiếng hết hạn token thì em refresh token thì bị lỗi như bên dưới
Array
(
[error] => invalid_grant
[error_description] => Bad Request
)
và đây là đoạn code để em refresh token
<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
function debug($msg) {
echo "<pre>";
print_r($msg);
echo "</pre>";
}
const CLIENT_ID = "563762623872-8ka1114m12g9t8ajjcqp1pf3rhl2mnit.apps.googleusercontent.com";
$idToken = "eyJhbGciOiJSUzI1NiIsImtpZCI6IjQ4NmYxNjQ4MjAwNWEyY2RhZjI2ZDkyMTQwMThkMDI5Y2E0NmZiNTYiLCJ0eXAiOiJKV1QifQ.xxxx";
$refreshToken = "AIwUaOmGtgE12PnksmP-KUC18uHjr29TDHBPhlsFK0gcVx_YkvK4pE8noVLop0N57NWZYaWaPfoqa1KIBPj6b0q7uitqv2MSjW9Y4rZScw6vof7mAY1IGDkrduD_rB8rMFwyXvPeTo=--xxxx";
$accessToken = "ya29.a0ARrdaM-Hvs88Dya4wZ5ZX1La7qQRr5YCi4YX1JmEjF1d07T35Mm_9r2jua1z6H0Py4IKXXcFhmzTo0textFje0_QAWvox0ebvB0YvYlEQp5oW4nYTlTH_Q-xxxx";
function createToken($accessToken, $refreshToken, $idToken = null)
{
$token['access_token'] = $accessToken;
$token['refresh_token'] = $refreshToken;
$token['token_type'] = "Bearer";
$token['expires_in'] = 3600;
$token['id_token'] = $idToken;
return $token;
}
$token = createToken($accessToken, $refreshToken, $idToken);
$client = new Google_Client(['client_id' => CLIENT_ID]);
$client->setAuthConfig('client_secrets.json');
$client->setAccessType('offline');
$client->setPrompt('select_account consent');
$client->setAccessToken($token);
debug($client->refreshToken($client->getRefreshToken()));
Nhờ anh em giúp em với ạ
Thêm một bình luận