Google OAuth2 (401) Неверные учетные данные

Итак, у меня есть приложение, над которым я работаю. У меня есть локальная копия в XAMPP и живая версия на сервере (конечно). Все работает нормально с обоими, однако, когда я выхожу из одного, я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение «Google_ServiceException» с сообщением «Ошибка при вызове GET (401) Invalid Credentials» в C:\localhost\htdocs\up\api\src\io\Google_REST.php:66 Трассировка стека: #0 C:\localhost \htdocs\up\api\src\io\Google_REST.php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 C:\localhost\htdocs\up\api\src\service\Google_ServiceResource.php(186 ): Google_REST::execute(Object(Google_HttpRequest)) #2 C:\localhost\htdocs\up\api\src\contrib\Google_Oauth2Service.php(36): Google_ServiceResource-›__call('get', Array) #3 C :\localhost\htdocs\up\src\user.php(63): Google_UserinfoServiceResource-›get() #4 C:\localhost\htdocs\up\includes\authorizedHeader.php(5): require('C:\localhost \ht...') #5 C:\localhost\htdocs\up\profile.php(1): include('C:\localhost\ht...')

6 {main} добавлено в C:\localhost\htdocs\up\api\src\io\Google_REST.php в строке 66

Я пробовал сильно обновлять, очищать кеш и т. д., и я все еще получаю сообщение об ошибке. Однако, когда я закрываю браузер и снова открываю его, все снова появляется, как будто ничего не произошло.

У кого-нибудь была такая проблема/решил?

Совет очень ценится.

Лучший,

Тайлер


person Tysweezy    schedule 28.01.2014    source источник


Ответы (1)


Пройдя несколько потоков SO, я наткнулся на этот фрагмент:

      if($client->isAccessTokenExpired()) {
          $client->refreshToken('refresh-token');
      }

Я заметил, что без этого, когда срок действия токена истечет, я получу ошибку. После того, как я вставил этот оператор «Если», я заметил, что токен обновления работает после истечения срока действия токена.

Я также пробовал это, и это также работает:

    if ($client->isAccessTokenExpired()) {
       session_destroy();
       header('Location: login.php');
    }

Это перенаправляет пользователя на страницу входа после истечения срока действия токена. Как только пользователь снова входит в систему, токен доступа запускается снова. Это, вероятно, не самый практичный способ, но я просто делюсь тем, что сработало для меня.

Я надеюсь, что это поможет кому-то, кто может столкнуться с этой проблемой.

person Tysweezy    schedule 30.01.2014