Авторизация на Twitch не перенаправляет обратно в приложение (OAuthSwift)

Я использую OAuthSwift, чтобы отправить пользователя на Twitch для авторизации моего приложения. Однако после авторизации приложения пользователь не возвращается в мое приложение. Я получаю сообщение, которое появляется в Safari:

You are about to leave Twitch. Twitch has no control over the content or security of http://localhost.

Я пытался справиться с этим в AppDelegate, но, похоже, он не перенаправляет:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey  : Any] = [:]) -> Bool {
    if (url.host == "http://localhost") {
        OAuthSwift.handle(url: url)
    }
    return true
}

Вот код, запускающий авторизацию Twitch:

@IBAction func didPressLoginButton(_ sender: Any) {

    // create an instance and retain it

        let oauthswift = OAuth2Swift(
            consumerKey:    "xxxxx",
            consumerSecret: "xxxxx",
            authorizeUrl: "https://id.twitch.tv/oauth2/authorize",
            accessTokenUrl: "https://id.twitch.tv/oauth2/token",
            responseType:   "code",
            contentType:    "application/json"
        )

        oauthswift.authorizeURLHandler = OAuthSwiftOpenURLExternally.sharedInstance

        self.oauthswift = oauthswift

        //oauthswift.accessTokenBasicAuthentification = true
        //let codeVerifier = base64url("abcd...")
        //let codeChallenge = codeChallenge(for: codeVerifier)

        let handle = oauthswift.authorize(withCallbackURL: URL(string: "http://localhost")!, scope: "user:read:email", state:"TWITCH") { result in

            switch result {

                case .success(let (credential, response, parameters)):
                    print(credential.oauthToken)
                    TwitchTokenManager.shared.accessToken = credential.oauthToken
                    //Twitch.Clips.getClips

                // Do your request

                case .failure(let error):
                    print(error.localizedDescription)
            }
        }
    }

Любая помощь будет принята с благодарностью. Спасибо :)


person winston    schedule 20.12.2019    source источник
comment
Вы ввели свой URI перенаправления в консоли разработчика?   -  person Hikarunomemory    schedule 16.01.2020
comment
Вам удалось? Слишком тяжело хахах   -  person iOS Flow    schedule 02.11.2020


Ответы (1)


Мой сказал это в Android (не уверен, что это поможет), но оказалось, что я ввел неправильный идентификатор клиента в свой веб-просмотр.

Как только я изменил его на правильный идентификатор клиента, который был на панели инструментов Twitch dev, он открыл страницу аутентификации. Кроме того, я использую свой домашний URL-адрес в качестве перенаправления, а не localhost. Не уверен, что это тоже имело значение. Удачи!!

person greasy gamer    schedule 17.04.2020