2017-03-15 1 views
0

Je travaille sur une application 1.x angulaire et j'utilise Adal.js pour l'authentification de manipulation. Le backend est construit sur ASP.NET Core. J'ai 5 points de terminaison d'API dont seulement 3 doivent être protégés (c'est-à-dire que seuls les utilisateurs authentifiés devraient y avoir accès). Donc, en d'autres termes, je n'ai pas besoin d'authentifier les appels GET. Il y a une page où les données des appels GET doivent être affichées mais si l'utilisateur décide d'éditer, supprimer ou ajouter des données alors il/elle doit être authentifié. Toutes les API sont hébergées sur le même domaine que l'interface utilisateur.Comment arrêter Adal.js d'intercepter certains itinéraires

Le problème que je suis face est que lorsque je ADAL initialise, il essaie d'intercepter tous les appels HTTP et en essayant de joindre le jeton. Cependant, comme certaines de mes pages doivent être visibles par tout le monde, ces états ne sont pas protégés (c'est-à-dire que je n'ai pas ajouté requireADLogin: true à ces états). La solution ne fonctionne pas après cela, c'est-à-dire que les appels d'API sont en cours. Si j'essaie de naviguer vers l'un des itinéraires protégés, ADAL redirige l'utilisateur vers la page de connexion et les appels sont en cours.

Est-il possible de parvenir à une telle solution à l'aide Adal angulaire?

Répondre

0

Oui, c'est possible.

Dans ce scénario, nous ne précisons pas le requireADLogin:true pour ce contrôleur. Cependant, nous devons encore protéger la ressource que nous voulons dans la page. par exemple. Nous pouvons masquer le bouton ajouter/modifier/supprimer qui nécessite la connexion des utilisateurs.

est Ci-dessous un morceau de code qui montre le bouton modifier après que les utilisateurs est signe-et sinon affiche le connexion:

<li><a class="btn btn-link" ng-hide="userInfo.isAuthenticated" ng-click="login()">Login</a></li> 
<li><a class="btn btn-link" ng-show="userInfo.isAuthenticated" ng-click="edit()">edit</a></li>