离子自定义 oauth2 重定向 URL Angular

Ionic custom oauth2 redirect URL Angular

我正在使用 Ionic 和 cordova 构建一个 android 应用程序。 我有一个 wordpress 网站——其中安装了具有某些访问功能的 oauth2 插件。我想先获取代码,然后发送 post 来检索令牌。我在网络浏览器中对其进行了测试,它运行良好:

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 - 它是。但是在 android 我使用:

      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/ or http://localhost/callback 返回到 android 应用程序,但它对我也不起作用。重定向URL比什么?如何返回应用程序? 当然 'xxx' 只是举个例子;)

在使用 $cordovaInAppBrowser 在应用内浏览器中打开 url 后,您需要侦听一个事件,$cordovaInAppBrowser:loadstart,如此处所述,http://ngcordova.com/docs/plugins/inAppBrowser/。 所以你可以按照下面的方式来做,

$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();
})