Oauth 2.0 не может получить маркер доступа из значения подписанного запроса "код" .


Я перехожу на Oauth 2.0. Мой текущий сайт использует JS SDK, имеет кнопку FB-login, затем я обращаюсь к Graph, чтобы получить сведения о пользователях.

У меня возникли проблемы с получением маркера доступа для получения этих данных из Graph.

Одной из проблем может быть то, что JS SDK dialog не перенаправляет my на URL, который он говорит, что он должен, т. е. тот, с которым?код=XXXXXXX, который я могу использовать для получения маркера доступа.

Поэтому я посмотрел на PHP SDK (я использую ASP), чтобы увидеть, как он это делает. Я уже разобрал ... подписано-значение запроса в файле cookie, получил значение в параме "код", чтобы добавить к URL-адресу маркера, но я не могу получить маркер доступа. Вот значения, которые я использую:

Проанализированные данные signed_request:

{"algorithm":"HMAC-SHA256","code":"2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc","issued_at":1323895617,"user_id":"XXXXXXXXXX"}

Token URL: https://graph.facebook.com/oauth/access_token?
           client_id=XXXXXXXX&
           redirect_uri=XXXXXXXX&
           client_secret=XXXXXX&
           code=2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc

Это ответ:

{"error":{"message":"Error validating verification code.","type":"OAuthException"}} 

Соответствует ли значение кода правильному формату? Есть идеи насчет того, что случилось?

1 7

1 ответ:

Здесь точно такая же проблема...

Решение: если код извлекается из полезной нагрузки cookie, оставьте параметр redirect_uri пустым

Попробуйте

Url токена: https://graph.facebook.com/oauth/access_token?client_id=XXXXXXXX&redirect_uri=&client_secret=XXXXXX&code=2.AQCovUOFCduELbna.3600.1323900000.1-773555243/Y_cW4riF4K7el_9a4oVNjL0qvZc

Работал на меня!