Я использую 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)
}
}
}
Любая помощь будет принята с благодарностью. Спасибо :)