Я пытаюсь настроить аутентификацию с помощью google плюс с помощью their tutorial. Я следовал инструкциям дословно, меняя client id
и client secret
в signin.php
. Для записи API 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
A
ответ
1
Вам необходимо сбросить состояние вашего приложения, если отсоединен, чтобы обновить $tocken
.
Документы Google API по обработке ошибок API
401: Invalid Credentials
Неверный заголовок авторизации. Маркер доступа, который вы используете, либо истек или недействителен.
{ "error": {
> "errors": [
> {
> "domain": "global",
> "reason": "authError",
> "message": "Invalid Credentials",
> "locationType": "header",
> "location": "Authorization",
> }
> ],
> "code": 401,
> "message": "Invalid Credentials" } }
Предложенное действие: Обновить маркер доступа с помощью долгоживущей токен обновления. Если это не удается, направить пользователь через поток OAuth, , как описано в Выдавшем Вашем App
Кроме того, его явно комментировал в 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);
}
Вы уверены, что можете выполнить запрос 'rotor'? .... возможно, у вас нет расширения curl. – Hackerman