2017-03-31 2 views
0

J'ai fait quelques progrès après mon initial post sur l'intégration de adal.js avec Vue.js. Je me connecte avec succès, et les propriétés que je m'attendais à définir sont définies dans localStorage.acquireToken callback jamais appelé

Toutefois, les appels à acquireToken ne jamais appeler le rappel que je passe. Le code ressemble à ceci:

let url = 'https://api.webserver.com/api/endpoint'; 

authContext.acquireToken(url, (err, token) => { 
    console.log(`acquiring token for ${url}`); 
    console.log(err, token); 
}); 

regardant la source adal.js, la signature de méthode pour acquireToken est la suivante:

AuthenticationContext.prototype.acquireToken(resource, callback) 

Le rappel est pas appelé. Est la valeur url je passe ce que la méthode attend? Je ne suis pas clair à ce sujet.

Votre aide est appréciée. Merci d'avance!

Répondre

1

Selon votre message de démarrage, vous avez terminé la configuration de l'application Azure AD, vous pouvez essayer de remplacer le url par la fonction client_id, sous acquireToken(). Selon le code source de adal for js, le acquireToken() appelle getCachedToken() au L515.

Et la fonction getCachedToken() obtiendra le jeton dans la session du navigateur via var token = this._getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource); Vous pouvez vérifier toutes les informations AD dans DEV TOOL du navigateur après vous être connecté avec succès. Nous pouvons trouver que la ressource est dans le format client_id.

enter image description here

+0

D'accord, je suis arrivé ce travail! Mais ... le jeton ne semble pas rafraîchir correctement. J'étais sous l'hypothèse que les appels successifs à acquérirToken garderaient le jeton mis à jour. Cependant, la session semble se terminer après environ 30 minutes, et le rappel n'est pas appelé dans ce cas. –

0

Dans la version 1.0.13 AdalJS, Si vous voulez avoir un rappel, vous pouvez utiliser le code suivant:

   authContext.acquireToken('https://api.webserver.com/api/endpoint').then(function (token) { 
        console.log(token) 
       },function(error){ 
        console.log('Failed to acquire token'); 
       } 
      ); 
+0

Êtes-vous sûr? acquireToken ne renvoie pas de Promesse ou d'objet de ce type. –

+0

Je l'utilise actuellement et ça marche pour moi! –

+0

Quelle version de adal.js? –