ASWebAuthenticationSession показывает только кнопку Отмена

Я аутентифицирую наш веб-сервис, используя ASWebAuthenticationSession и по какой-то причине единственный вариант после окончательного перенаправления - Отмена. Раньше у меня это работало, и даже если я нажал Отмена, URL-адрес обратного вызова был отправлен через обработчик завершения, и я смог там проанализировать форму токена. Но теперь я просто получаю ошибку ASWebAuthenticationSessionErrorCodeCanceledLogin,

Как я могу получить ASWebAuthenticationSession показать кнопку Готово и завершить обработчик с URL обратного вызова? Что-то изменилось или сломалось в последнем обновлении iOS?

Как я создаю сессию

if (@available(iOS 12.0, *)) {
    self.session = [[ASWebAuthenticationSession alloc]
                    initWithURL:@"http://service.com"
                    callbackURLScheme:@"http://website.com"
                    completionHandler:_sessionHandler];
     [self.session start];
}

Обработчик завершения

_sessionHandler = ^(NSURL * _Nullable callbackURL, NSError * _Nullable error) {
    NSLog(@"Callback Url: %@, Error: %@", callbackURL, error);
    if ( callbackURL != nil ) {
        __block NSString * token = [weakSelf webToken:@"token" fromUrl:callbackURL];
        weakSelf.completionHandler([weakSelf parseWebToken:token], error);
    }
    else
        weakSelf.completionHandler(nil, error);
};

Выход

URL обратного вызова: (ноль), ошибка: ошибка Домен =com.apple.AuthenticationServices.WebAuthenticationSession Code=1 "(ноль)"

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

Если веб-служба отправляет определенный заголовок обратно в окончательный URL, так ASWebAuthenticationSession покажет кнопку Готово и завершит обработчик с URL?

0 ответов