2016-05-21 17 views
2

私はwebappを構築し、対応するモバイルアプリをIonicで作っています。私は、私の人生を楽にしてくれるように、進歩的なWebアプリケーションを作りたいと思っていますが、Appleはこれをまだサポートしていないと思います。外部APIのためのIonicのリダイレクトUriの処理

(P.S.私はこのようなもので、かなり新しいです)

だから私は、APIリクエストを行うためにリダイレクトURIにアクセストークンを送り返す兵役を、確認するためにid.me APIを使用しています。

私のサーバーまたはクライアントを通じて、これを行う方法は2通りあります。ここで

は彼らのWebflowのは、私は一種の失われたイオンを取得する場所です https://developer.id.me/documentation#oauth-overview

です....

だから、Webflowのをキックオフするために、私はid.meの認可エンドポイントにユーザーを送信する必要があります、私はinappbrowserで行うことになるid.meがリダイレクトにアクセストークンを送り返す先の

https://api.id.me/oauth/authorize?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token&scope=SCOPE 

...

そこからトークンを奪ってローカルストレージに保存し、inAppBrowserを閉じることができます。私が知らないことは、どこにURIを設定するのですか?それはlocalhostですか?あなたのプラットフォームでIonicをビルドすると、ローカルサーバー上で実行されていますか?

私はこのようなことをしますか?

angular.module('myApp', ['ionic', 'ngCordova']).controller('AppCtrl', 

function($rootScope, $ionicPlatform, $cordovaInAppBrowser) { 
    var callback = 'http://localhost:8100/callback'; 
    $scope.idAuth = function() { 
     $ionicPlatform.ready(function() { 
     var options = { 
      location: 'yes', 
      clearcache: 'no', 
      toolbar: 'yes' 
     }; 
     $cordovaInAppBrowser.open('https://api.id.me/oauth/authorize?client_id=CLIENT-ID&redirect_uri=callback&response_type=token&scope=SCOPE', '_blank', options) 
     }); 
    }; 


    $rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event) { 
     //and this function is called, so you do something like 
     if(event.url === callback){; 
     let token = event.url.match(/\#(?:access_token)\=([\S\s]*?)\&/)[1]; 
     $window.localStorage.setItem('token', token); 
     $cordovaInAppBrowser.close(); 
     } 
    }); 

ここでコールバックURIがヒットすると、その関数が実行されますか?

また、これは私が失われた場所です。私はこれがローカル開発でどのように機能するのかを知っていますが、これをビルドしてデバイスに入れると、そのコールバックURIはまだ存在していますか? Ionicはデバイス自体のローカルサーバー上で動作していますか?

答えて

3

イオニックは、http://localhost/[YourCallBackURI]で聞いています。デフォルトでは、構成を変更しないかぎり、デバイス上のポート80で実行されます。他のポートは、エミュレータモードで実行しているときに使用されます。

+0

ありがとう、私はどこでも見たことがありません。私はその後、ポートをドロップします! –

+0

@AnthonyUrbinaの心は答えとしてそれをマーキングする。 –

+0

申し訳ありませんが、私はリダイレクトになるとn00bです - 私は似たようなことを試みていますが、私のコールバックhtmlページを起動できません。私は "silent-callback.html"ページでAuth0を使用しています。私のHTMLは "src/pages/silent-callback/silent-callback.html"にあり、私はapp.module.tsで宣言しています。リダイレクトを正確にどのようにフォーマットする必要がありますか? – mpsyp

関連する問題