离子自定义oauth2重定向URL Angular

时间:2017-01-02 13:39:15

标签: android angularjs cordova ionic-framework oauth2

我正在使用 Ionic和cordova 构建一款Android应用。 我有一个wordpress网站 - oauth2插件在哪里安装了一些访问功能。我想首先获取代码,然后发送帖子以检索令牌。我在网络浏览器中进行了测试,效果很好:

location.replace('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/');

我在客户端登录我的网站后获取代码并将其重定向到我的应用程序,该应用程序位于ip 192.168.0.129:8100,代码在url中 - 它是我的。但是在机器人中我正在使用:

      var options = {
    clearcache: 'yes',
    toolbar: 'no'
  };

   $cordovaInAppBrowser.open('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/', '_blank' ,  options)
        .then(function(event) {


        }).then(function(){


    });

一切正常但不重定向 - 它无法再次加载我的应用程序。我进行了一些研究,大多数人将http://localhost/http://localhost/callback放回到Android应用程序,但它也不适用于我。什么是重定向网址?如何回到应用程序? 当然' xxx'仅举例来说;)

1 个答案:

答案 0 :(得分:1)

使用$cordovaInAppBrowser在应用内浏览器中打开网址后,您需要按照此处所述http://ngcordova.com/docs/plugins/inAppBrowser/收听活动$cordovaInAppBrowser:loadstart。 所以你可以用以下方式来做,

$cordovaInAppBrowser.open('https://xxx/oauth/authorize?response_type=code&client_id=xxx&redirect_uri=http://192.168.0.129:8100/', '_blank' ,  options);
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event) {
   // check event for which url loaded. if it loaded the http://192.168.0.129:8100/ with the access token, then handle it there and close the in app browser with, $cordovaInAppBrowser.close();
})