Я пытаюсь настроить аутентификацию с помощью Google Plus, используя их руководство. Я следовал указаниям дословно, меняя client id
и client secret
в signin.php
. Для справки, Google Plus API включен в консоли разработчика Google. Я также обновляю права доступа к файлам в соответствии с инструкциями (chmod +x signin.php
и chmod -R 555 vendor/
). Однако после загрузки моего URL-адреса аутентификации (который находится в подкаталоге auth_test/
моего домена и нажатия кнопки входа консоль выдает 401 (unauthorized)
для отправленного запроса get
/activites.
Я исследовал проблему и вижу, что это может быть вызвано недопустимым токеном, но я не понимаю, как это может быть, потому что все было настроено в singin.php.
Буду признателен за большую помощь...
Google Plus OAuth PHP 401 (неавторизованный)
Ответы (1)
Вам нужно сбросить состояние вашего приложения, если оно отключено, чтобы обновить файл $tocken
.
Документы Google API office по обработке ошибок API
401: Invalid Credentials
Неверный заголовок авторизации. Используемый токен доступа просрочен или недействителен.
{ "error": {
> "errors": [
> {
> "domain": "global",
> "reason": "authError",
> "message": "Invalid Credentials",
> "locationType": "header",
> "location": "Authorization",
> }
> ],
> "code": 401,
> "message": "Invalid Credentials" } }
Предлагаемое действие: Обновите токен доступа, используя долгоживущий токен обновления. Если это не удается, направьте пользователя через поток OAuth, как описано в разделе Авторизация вашего приложения.
Также это четко прокомментировано в singin.php в строке №. 98 :
// Normally the state would be a one-time use token, however in our // simple case, we want a user to be able to connect and disconnect // without reloading the page. Thus, for demonstration, we don't // implement this best practice. //$app['session']->set('state', '');
Таким образом, в вашем случае кажется, что ваше приложение отключено, что приводит к тому, что $token
становится пустым. Следовательно, форсирование этого блока кода в строке №: 91
if (empty($token)) {
// Ensure that this is no request forgery going on, and that the user
// sending us this connect request is the user that was supposed to.
if ($request->get('state') != ($app['session']->get('state'))) {
return new Response('Invalid state parameter', 401);
}
person
Amar Pratap
schedule
05.08.2016
curl
? .... возможно, у вас не включено расширение curl. - person Hackerman   schedule 04.08.2016