Действия Google: связывание аккаунта отправляет запрос GET на URL токена - PullRequest
0 голосов
/ 26 марта 2019

У меня есть некоторые проблемы с привязкой учетной записи для действий Google:

Я реализовал шаги OAuth2, описанные в документации Google.Я внедрил свой сервер OAuth2 и протестировал его с помощью Postman, и я могу получить токен доступа, как и ожидалось.

Если я пытаюсь пройти аутентификацию из приложения Google Home, добавив службу в свою учетную запись, я получаюмоя форма авторизации, авторизация работает нормально и отвечает кодом авторизации на URI перенаправления Google, как это должно быть.Тем не менее, в Google возвращают URI с сообщением «Ошибка привязки аккаунта», а затем я получаю сообщение в приложении Google Home: «Не удается обновить настройки.Проверьте ваше соединение ».

Еще одна странная вещь, которую я вижу по регистрации в моем скрипте Token URL: я вижу входящий запрос GET от Google на мой URL токена вместо запроса POST с необходимыми даннымикак упомянуто в документации Google.Поэтому, даже несмотря на то, что появляется сообщение «Не удалось установить связь с учетной записью», похоже, что Google вызывает URL моего токена, но с GET вместо POST.

Это журналы запросов на URL токена:

ЗАПРОС ОТ POSTMAN (тестирование программного обеспечения)> ОК

__SERVER
Array
(
    [USER] => www-data
    [HOME] => /var/www
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_ACCEPT] => */*
    [HTTP_USER_AGENT] => PostmanRuntime/7.6.1
    [HTTP_POSTMAN_TOKEN] => f85664e2-7d38-4511-9519-cddda3feec06
    [HTTP_CACHE_CONTROL] => no-cache
    [HTTP_CONTENT_TYPE] => application/x-www-form-urlencoded
    [HTTP_CONTENT_LENGTH] => 145
    [HTTP_CONNECTION] => close
    [HTTP_HOST] => 127.0.0.1
    [REDIRECT_STATUS] => 200
    [SERVER_NAME] => _
    [SERVER_PORT] => 80
    [SERVER_ADDR] => 127.0.0.1
    [REMOTE_PORT] => 38622
    [REMOTE_ADDR] => 127.0.0.1
    [SERVER_SOFTWARE] => nginx/1.12.2
    [GATEWAY_INTERFACE] => CGI/1.1
    [REQUEST_SCHEME] => http
    [SERVER_PROTOCOL] => HTTP/1.0
    [DOCUMENT_ROOT] => [******]
    [DOCUMENT_URI] => /google/token/index.php
    [REQUEST_URI] => /google/token/
    [SCRIPT_NAME] => /google/token/index.php
    [CONTENT_LENGTH] => 145
    [CONTENT_TYPE] => application/x-www-form-urlencoded
    [REQUEST_METHOD] => POST
    [QUERY_STRING] =>
    [SCRIPT_FILENAME] => [******]
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /google/token/index.php
    [REQUEST_TIME_FLOAT] => 1553765980.9273
    [REQUEST_TIME] => 1553765980
)
__POST
Array
(
    [client_id] => [******]
    [client_secret] => [******]
    [grant_type] => authorization_code
    [code] => [******]
)

ЗАПРОС, ПОЛУЧЕННЫЙ ПРИ ТЕСТИРОВАНИИ С GOOGLE HOME APP на смартфоне> НЕ ОК

__SERVER
Array
(
    [USER] => www-data
    [HOME] => /var/www
    [HTTP_ACCEPT_ENCODING] => gzip,deflate,br
    [HTTP_USER_AGENT] => OpenAuth
    [HTTP_CONTENT_TYPE] => application/x-www-form-urlencoded
    [HTTP_CONNECTION] => close
    [HTTP_HOST] => 127.0.0.1
    [REDIRECT_STATUS] => 200
    [SERVER_NAME] => _
    [SERVER_PORT] => 80
    [SERVER_ADDR] => 127.0.0.1
    [REMOTE_PORT] => 46184
    [REMOTE_ADDR] => 127.0.0.1
    [SERVER_SOFTWARE] => nginx/1.12.2
    [GATEWAY_INTERFACE] => CGI/1.1
    [REQUEST_SCHEME] => http
    [SERVER_PROTOCOL] => HTTP/1.0
    [DOCUMENT_ROOT] => [******]
    [DOCUMENT_URI] => /google/token/index.php
    [REQUEST_URI] => /google/token/
    [SCRIPT_NAME] => /google/token/index.php
    [CONTENT_LENGTH] =>
    [CONTENT_TYPE] => application/x-www-form-urlencoded
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [SCRIPT_FILENAME] => [******]
    [FCGI_ROLE] => RESPONDER
    [PHP_SELF] => /google/token/index.php
    [REQUEST_TIME_FLOAT] => 1553767309.7797
    [REQUEST_TIME] => 1553767309
)
__REQUEST
Array
(
)
__POST
Array
(
)
__GET
Array
(
)
-------------------------
__ANSWER
400: invalid grant

Конфигурация вКонсоль действий

1 Ответ

1 голос
/ 28 марта 2019

Проблема, как представляется, была вызвана перенаправлением / в /index.php без значений POST.

Исправлена ​​проблема с изменением моих URL-адресов в консоли действий на /index.php, и теперь ссылки работают нормально..

...