J'ai un SPA angulaire (1.x), et j'essaye de le protéger par l'intermédiaire d'ADAL pour exiger l'authentification par l'intermédiaire d'un Azure AD. Cependant, même les routes/pages/états marqués avec requireADLogin: true
semblent permettre à l'utilisateur d'y accéder sans nécessiter d'authentification.ADAL requireADLogin et angulaire-ui-routeur?
Je me demande si le problème est que j'utilise angular-ui-router (0.4.2) au lieu de ngRoute, et donc ma configuration des routes/états n'est pas vraiment prise en compte.
Mon modèle Html affiche userInfo
et sur la première charge qui est {"isAuthenticated":false,"userName":"","loginError":""}
, mais la page se charge (y compris la route enfant/état), même si je mets requireADLogin: true
sur la coque et/ou de l'état de l'enfant (voir ci-dessous).
J'ai un bouton de connexion menant à la séquence de connexion dans une fenêtre pop-up, et quand cela se termine, la page montre le userInfo pour l'utilisateur connecté, alors je pense que j'ai le reste aligné. v
// My top-level app config block:
function AppConfig($stateProvider, $urlRouterProvider, $httpProvider, adalAuthenticationServiceProvider) {
// Configure the urlRouteProvider to redirect to /intro by default
$urlRouterProvider.otherwise("/intro");
// Configure the ADAL Auth Provider
adalAuthenticationServiceProvider.init({
tenant: "[MyTenantID]",
clientId: "[MyClientID]",
popUp: true
}
// // pass http provider to inject request interceptor to attach tokens
// $httpProvider
);
}
// Later I set up my shell state/route (all other states are children of this one):
$stateProvider.state('shell', {
//blank url as the shell is an abstract parent to every other state
url: '',
templateUrl: 'app/shell/shell.html',
controller: 'ShellController',
controllerAs: 'vm',
abstract: true,
requireADLogin: false // <-- tried with requireADLogin: true
});
// Intro (aka shell.intro) should be the default state:
$stateProvider.state('shell.intro', {
url: '/intro',
templateUrl: 'app/intro/intro.html',
controller: 'IntroController',
controllerAs: 'vm',
data: {
pageTitle: 'Intro'
},
requireADLogin: true
});
Out malade - va essayer dès que possible et mettre à jour. Merci pour votre temps! – FOR
Décommenter la ligne $ httpProvider semble avoir fait l'affaire - merci! – FOR