Многократный вход в приложение IOS, ASWebAuthSession, SSO, Cordova, OAuth, требующий ввода учетных данных - PullRequest
1 голос
/ 05 июня 2019

Я пытаюсь использовать сторонний OAuth2-провайдер для моего приложения IOS Ionic v1 для входа в систему.

После обновления до WKWebview вход в систему через браузер inapp больше не работает

В настоящее время используетсяASWebAuthSession от IOS и доступный для него плагин cordova cordova-plugin-ios-aswebauthenticationsession

    var loginUrl = 'https://mywebsite/_oauth/login?app_name=mytestapp&redirect_url=https://mywebsite/_oauth/login/mobile-app/iosredirect.html';

    window.plugins.ASWebAuthSession.start("mytestapp://", loginUrl,
    function(msg){
      console.log("Success ", msg);
    }, function (err) {
        console.log("Error " + msg);
    });

При первом запуске приложения> Вход> открывается новое окно и загружается экран входа стороннего производителя> при вводе имени пользователя и пароля введите>успех> закрывает окно> я получаю access_token в обратном вызове успеха.Все хорошо в первый раз

Но во второй раз он проходит тот же поток, что и в первый раз.С ASWebAuthSession API разве он не должен запоминать куки и передаваться поставщику OAuth и возвращаться в приложение?Разве ASWebAuthSession не должен работать в режиме единого входа?

Я также попробовал устаревшую SFAuthenticationSession, но безуспешно.

Далее, чтобы доказать, что ASWebAuthSession делится данными из Safari в IOS, я попробовал это:

В браузере Safari зашли на Facebook, и в моем приложении запустил экземпляр ASWebAuthSession, как показано ниже, напрямую загрузил мои фейсбук-каналы без повторного входа в систему.

      window.plugins.ASWebAuthSession.start("mytestapp://", 'http://www.facebook.com',
      function(msg){
        console.log("Success ", msg);
      }, function (err) {
          console.log("Error " + msg);
      });

Почему мой OAuth не ведет себя одинаково.SSO хорошо работает в браузере

Любая помощь высоко ценится.Спасибо

Details and Versions:

   @ionic/cli-utils  : 1.19.1
   ionic (Ionic CLI) : 3.19.1
   cordova (Cordova CLI) : 7.1.0 
   Cordova Platforms : ios 5.0.1

    Android SDK Tools : 26.1.1
    ios-deploy        : 1.9.2 
    ios-sim           : 8.0.1 
    Node              : v10.16.0
    npm               : 6.9.0 
    OS                : macOS
    Xcode             : Xcode 10.2.1 Build version 10E1001 
...