2016-05-02 6 views
0

Ich habe überlegt, mehrere APIs in meiner ng-admin App zu verwenden. Ich habe auch eine andere Autorisierungs-API, die auf dem Host läuft und Token für andere API-Aufrufe bereitstellt.Wie kann die Autorisierungs-API in der ng-admin App verwendet werden?

Ich möchte alle oben genannten APIs in meiner ng-admin App verwenden. Customizing the API Mapping of the ng-admin documentation unten beschreibt Code APIs

myApp.config(['RestangularProvider', function(RestangularProvider) { 
var login = 'admin', 
    password = '53cr3t', 
    token = window.btoa(login + ':' + password); 
RestangularProvider.setDefaultHeaders({'Authorization': 'Basic ' + token}); }]); 

jedoch zu genehmigen, wo ist der Ort, meine Genehmigung api url hier angeben? Wie konfiguriere ich die Authentifizierungs-API, um Token für alle anderen APIs bereitzustellen? Auf der anderen Seite, was muss ich für Refresh-Tokens tun?

Dank

+1

Ich denke, Sie sollten Restangular Interceptor basierend auf der URL einrichten. Aber ich empfehle, dass Sie Ihre Frage mit dem Restangular-Tag stellen, weil ng-admin hier nichts Besonderes tut. –

Antwort

1

http://ng-admin-book.marmelab.com/doc/Custom-pages.html

geht durch die Dokumentation von ng-admin und sieht, wie benutzerdefinierte Seiten in ng-admin hinzuzufügen. Ich habe die Autorisierung API in meinem Code wie folgt verwendet:

if(localStorage.getItem('yourTokenKey') !== null && localStorage.getItem("yourTokenKey") != 'undefined') 
     $urlRouterProvider.otherwise("/dashboard"); 
    else 
     $urlRouterProvider.otherwise("/login"); 

$stateProvider 
    .state('login',{    
     url:'/login', 
     templateUrl:'templates/login.html', 
     controller:'loginController' 
    }) 
    .state('stats', { 
     parent: 'main', 
     url: '/stats', 
     templateUrl: 'templates/inventoryFormTemplate.html'   
    }) 
    .state('dashboard2', { 
     parent: 'main', 
     url: '/dashboard'   
    }) 
    .state('inventoryItem', { 
     parent: 'main', 
     url: '/inventoryItem'   
    }) 
    .state('requestInventoryItem', { 
     parent: 'main', 
     url: '/requestInventoryItem'    
    }) 
    .state('logout', {   
     url: '/logout', 
     controller:'logoutController'   
    });