Google Oauth 2.0 проверяет, не истек ли мой токен повторного доступа

Привет я настраиваю автономный доступ, когда пользователь пытается войти в систему с помощью Google Oauth 2.0, а затем я получаю токен обновления и сохраняю его в своей базе данных, так что я могу использовать его позже, не запрашивая пользователя войти снова, и я обнаружил, что пользователь может отозвать доступ к нашему приложению из его приложений Google из своей учетной записи Google, и после этого наш токен обновления доступа не будет работать.

Таким образом, это способ, которым мы можем проверить, является ли наш токен обновления действительным или нет, прежде чем использовать его, я попытался выяснить это из документации Google API, но не смог найти никакой помощи, я могу только найти, что мы можем проверить время истечения срока действия простого токена доступа, который действует только 1 час.

 if($client->isAccessTokenExpired())

но я хочу проверить, что мой токен обновления — это способ, которым мы можем это проверить, или же у google outh 2.0 есть какой-то веб-хук, который может вызывать наш URL, когда пользователь отозвал наш доступ к приложению.

вот мой код для входа

$google_redirect_url = $url;
$client = new \Google_Client();
$client->setAuthConfig('/secret.json');
$client->setRedirectUri($google_redirect_url);
$client->setAccessType('offline');        // offline access
$client->setIncludeGrantedScopes(true);   // incremental auth
$client->setApprovalPrompt('force');
$client->setScopes(array(
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/youtube',
'https://www.googleapis.com/auth/youtube.upload'
));

Я также искал решение, но не смог его найти.

1

Решение

Вы должны рассмотреть, что вы собираетесь делать здесь. Вы хотите отправить запрос в Google, прежде чем пытаться обновить токен доступа, спрашивая, можно ли использовать этот токен обновления. Тогда, если Google скажет, что вы в порядке, используйте маркер обновления.

Хотя это может показаться хорошей идеей в теории, в конце концов, мы все хотели бы избежать ошибок. Однако то, что вы делаете, это удваивает количество запросов, которые вы делаете, просто чтобы избежать ошибки, если токен обновления не работает. Почему вы хотите удвоить количество запросов, которые вы делаете?

Что вы должны сделать, это просто попытаться использовать токен обновления, если он не работает, попросите пользователя снова получить доступ. Предполагая, что это выполняется автоматически, просто удалите маркер обновления из базы данных и больше не пытайтесь автоматически запускать запросы этого пользователя.

При этом лучший способ и единственный способ, который дает нам Google для проверки токена обновления, — это попробовать и использовать его. Любой метод, который вы найдете в своей библиотеке, вероятно, просто делает это.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector