OAuth2 с API Yahoo

Я хочу читать и записывать данные пользователя Yahoo Fantasy Sports.

Я пытаюсь получить доступ через API Yahoo, используя OAuthSwift.

Мой объект OAuthSwift выглядит так:

let oauth2Swift = OAuth2Swift(
    consumerKey:    "*****",
    consumerSecret: "*****",
    authorizeUrl:   "https://api.login.yahoo.com/oauth2/request_auth",
    accessTokenUrl: "https://api.login.yahoo.com/oauth2/get_token",
    responseType:   "code"
)

И я выполняю это так:

    self.oauth2Swift.authorize(withCallbackURL: "com.me.myapp", scope: "fspt-w", state: "", success: { (cred, response, params) in
        print("✅ success")
    }) { (error) in
        print("???? error")
    }

Я создал экземпляр приложения на веб-сайте разработчиков Yahoo и убедился, что домен обратного вызова совпадает с доменом, использованным в предыдущем фрагменте кода:

введите здесь описание изображения

Мое приложение для iOS успешно запускает процесс входа в Yahoo в браузере, однако, как только пользователь входит в систему, появляется следующая ошибка:

Разработчики: проверьте URI перенаправления в запросе и повторите отправку.

введите здесь описание изображения

Итак, мой вопрос: почему я получаю указанную выше ошибку при попытке авторизовать пользователя Yahoo с помощью OAuth в Swift?


person vikzilla    schedule 28.10.2017    source источник


Ответы (1)


Поставщик удостоверений перенаправит клиентское приложение с URL-адресом, указанным в обратном вызове. Попробуйте изменить URL-адрес обратного вызова на конечную точку аутентификации вашего приложения. Раньше я тестировал с callbackURL: "http://127.0.0.1:xxxx/auth/yahoo/callback" и работал. И, конечно же, настроенный домен обратного вызова должен совпадать с доменом в URL-адресе.

person Senthil    schedule 28.10.2017
comment
Привет, я использовал это как URL-адрес обратного вызова и, к сожалению, все еще получаю ту же ошибку. - person vikzilla; 28.10.2017
comment
Вам не хватает конечной точки для обработки перенаправления? Вы можете использовать этот документ OAuth2 в Python для перекрестной проверки кода. Я реализовал в Spring, поэтому у меня был фильтр аутентификации на пути /yahoo/callback для обработки перенаправления. - person Senthil; 31.10.2017