因此,我構建了一個webapp並在Ionic中製作相應的移動應用程序。我想製作一款先進的網絡應用程序,因爲它會讓我的生活更輕鬆,但我想蘋果公司目前還不支持。在Ionic中處理重定向Uri以用於外部API
(附註:我非常新的這個東西)
所以我使用的是id.me API來驗證服兵役,發回一個訪問令牌的重定向URI,以使API請求。
有兩種方法可以通過我的服務器或通過客戶端執行此操作。
這裏是他們的Webflow https://developer.id.me/documentation#oauth-overview
這是我有點迷失離子....
因此揭開序幕的Webflow,我必須給用戶發送到id.me授權端點,我會做的inappbrowser
https://api.id.me/oauth/authorize?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token&scope=SCOPE
到id.me發回一個訪問令牌的重定向...
從那裏,我可以搶奪令牌,將其保存到本地存儲並關閉inAppBrowser。我不知道在哪裏設置uri?它是本地主機嗎?當您在平臺上構建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是否仍然存在? Ionic是否在設備本身的本地服務器上運行?
謝謝你的男人,我沒有看到任何地方。那麼我會放下這個端口! –
@AnonyUrbina記住標記爲已回答。 –
對不起,我是一個n00b當談到重定向 - 我想類似的東西,但我無法讓我的回調HTML頁面觸發。我使用的是「silent-callback.html」頁面的Auth0。我的html在「src/pages/silent-callback/silent-callback.html」中,並且已經在我的app.module.ts中聲明瞭它。我應該如何格式化重定向? – mpsyp