IOS,ASWebAuthSession,SSO,Cordova,OAuth应用多次登录,需要输入凭据

时间:2019-06-05 13:39:11

标签: ios cordova ionic-framework single-sign-on

我正在尝试使用IOS Ionic v1应用程序的第三方企业OAuth2提供程序进行登录。

自升级到WKWebview以来,基于inapp浏览器的登录名不再起作用

当前使用IOS的ASWebAuthSession和可用于它的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);
    });

首次启动应用程序>登录>新窗口打开并加载第3方登录屏幕>在用户名和密码上输入>成功>关闭窗口>我在成功回调中获得了access_token。第一次都很好

但是第二次与第一次相同。使用ASWebAuthSession API,是否不应该记住cookie并传递给OAuth提供程序并返回到应用程序? ASWebAuthSession不能与SSO一起使用吗?

我也尝试了现在不推荐使用的SFAuthenticationSession,但是没有运气。

进一步证明ASWebAuthSession在IOS中共享了来自Safari的数据,我尝试这样做:

在Safari浏览器中登录到Facebook,然后在我的应用程序中启动了一个ASWebAuthSession实例,如下所示,它直接加载了我的Facebook Feed,而无需重新登录。

      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 

0 个答案:

没有答案