curl после тестирования oauth 2.0 не работает, в то время как пример http - PullRequest
2 голосов
/ 18 октября 2011

Я пытаюсь понять, как аутентификация Google работает с OAuth 2.0.Они приводят несколько примеров на этой ссылке .

У меня проблемы с одним из первых шагов.Я могу выполнить этот запрос http в браузере:

https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&client_id=21302922996.apps.googleusercontent.com&redirect_uri=https://www.example.com/back&response_type=token

, и это прекрасно работает.

Когда я пытаюсь преобразовать его в операцию GET curl,

curl https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&client_id=21302922996.apps.googleusercontent.com&redirect_uri=https://www.example.com/back&response_type=token

Я получаю ответ, который говорит мне, что есть OAuth 2.0 error: invalid_request.

Преобразование его в POST, я не могу заставить эту операцию работать.

curl http://accounts.google.com/o/oauth2/auth  -d “scope=https://www.google.com/m8/feeds&client_id=21302922996.apps.googleusercontent.com&redirect_uri=https://www.example.com/back&response_type=token” 

Ответ: документ перемещен.

Если я попробую это, я получу аналогичные результаты.

curl http://accounts.google.com/o/oauth2/auth  -data-urlencode “scope=https://www.google.com/m8/feeds&client_id=21302922996.apps.googleusercontent.com&redirect_uri=https://www.example.com/back&response_type=token”

Я никогда раньше не использовал curl или OAuth в своем коде, поэтому я хочу понять некоторые из этих основ.Может кто-нибудь сказать мне, что не так с моими GET и POST?

1 Ответ

2 голосов
/ 14 ноября 2011

У меня нет точного ответа для вас, но я работал над чем-то похожим на Instagram, и одна вещь, которая меня несколько озадачила, заключалась в том, что мой URL перенаправления выглядел так же, как ожидал Instagram, но я продолжал получать ошибки.

Как и вы, когда я «вручную кодировал» URL-адрес перенаправления, я получил ожидаемый результат, но мои автоматические вызовы по URL-адресу аутентификации не были выполнены. Оказалось, что мои амперсанды были закодированы в URL, который Instagram сравнивал с URL-адресом перенаправления, и увидел, что они не идентичны. Я не уверен, что это поможет вам ближе к ответу, но я подумал, что поделюсь своим опытом, поскольку ваш вопрос напоминает мне ситуацию, в которой я находился. Удачи.

...