Uber API OAuth на watchOS 6.2 с использованием ASWebAuthenticationSession - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь пройти аутентификацию с помощью API Uber, используя новую возможность OAuth в watchOS 6.2 ASWebAuthenticationSession:

ASWebAuthenticationSession(url: uberUrl, callbackURLScheme: scheme) { (URL?, Error?) -> in {
  print(callbackUrl, error)

  if let url = callbackUrl {
     let components = NSURLComponents(string: (url.absoluteString))
     if let t = components?.queryItems?.filter({$0.name == "code"}).first?.value {
        self.token = t
     }
  }

  }

Когда я запускаю его, на Watch появляется небольшой очаровательный веб-браузер и выдает подсказки для «E-mail или номера мобильного телефона», после ввода моей электронной почты, при нажатии «Далее» появляется окно ввода текста, которое затем внезапно исчезает, оставляя меня обратно при вводе электронной почты. Последующие нажатия «Далее» вызывают окно ввода текста, которое позволяет мне редактировать только адрес электронной почты. Пароль никогда не вариант. Мне никогда не удавалось завершить закрытие, даже с ошибкой en.

Если я прокручиваю вниз до «Войти с помощью Google», то страница входа Google загружается, и я могу ввести адрес электронной почты и пароль, и завершение выполняется блок (я получаю нулевой токен, предположительно, потому что моя учетная запись Uber не принадлежит Google).

Я подозреваю, что проблема с веб-страницей входа в систему Uber, но не могу проверить это, кроме наблюдения того, что Google работает. Также я не могу найти документацию по параметру callbackURLScheme относительно watchOS. Я создаю схему в листе, как это можно сделать с приложением iOS, но не могу подтвердить, что это правильная процедура. Тем не менее, это не меняет того факта, что поле пароля не появится на странице входа в систему присяги Uber.

Поиск StackOverflow для watchOS и ASWebAuthenticationSession не дает результатов на этом этапе.

Кто-нибудь еще пытаешься сделать это прямо сейчас? У кого-нибудь был успех? Я что-то упускаю, или это просто ошибка со стороны Uber?

...