@xHaikx

OAuth авторизация на сайте возвращает ошибку «redirect_uri отличается от переданного на этапе OAuth», при указании параметра scope, почему?

При передаче любых данных в scope (в моем случае "GET_EMAIL") появляется запрос на доступ к email пользователя, после подтверждения прав, перенаправляет на главную страницу с ошибкой "invalid_request: redirect_uri отличается от переданного на этапе OAuth". Если параметр scope не указан все работает, но соответственно не приходит email.
В настройках приложения пробовал разнообразные redirect_uri указывать, не помогло!
Использую Nodge/yii2-eauth
  • Вопрос задан
  • 749 просмотров
Решения вопроса 1
@xHaikx Автор вопроса
Ответ от odnoklassniki Api Team
Т.к. используется серверный OAuth (response_type=code), то он имеет 2 фазы:
1. Открывается превью с правами
2. После получения code, идет запрос от вашего сервера к нашему за токенами доступа.

На этих двух шагах redirect_uri должен полностью совпадать.

Скорее всего, т.к. при запросе GET_EMAIL, вы его выдаете, то у вас добавляется на втором шаге еще параметр permissions_granted=GET_EMAIL, а так быть не должно.

Это просто смешно, из-за того что в ссылку добавляется GET параметр невозможно зарегистрироваться через соц сеть, сама ссылка же не меняется, все остальные сервисы соцсетей работают отлично в них достаточно просто указать домен сайта( в odnoklassniki же нужно указывать каждую страницу с которой идет запрос вплоть до get параметров) .

По логике odnoklassniki Api Team я должен лезть в исходники библиотеки которой пользуюсь и убирать параметр permissions_granted=GET_EMAIL только для сервиса odnoklassniki, с риском того что упадут все остальные сервисы соцсетей, которые кстати работают отлично и без всяких проблем.

Вывод: Либо пишите вручную логику OAuth авторзации для этого "прекрасного" сервиса, либо, что будет явно лучше, откажитесь от использования данного сервиса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы