私は角(1.x)SPAを持っており、Azureを介してauthを要求するためにADAL経由で保護しようとしています。 しかし、requireADLogin: true
とマークされたルート/ページ/状態であっても、ユーザーは認証を要求することなくアクセスできます。ADALが必要ですか?ログインと角度ui-router?
ngRouteの代わりにangular-ui-router(0.4.2)を使用しているため、ルート/状態の設定が実際には考慮されていないのだろうかと思います。
私のHTMLテンプレートは、私は(下記参照)のシェルおよび/または子状態にrequireADLogin: true
を設定した場合でも、userInfo
を表示して{"isAuthenticated":false,"userName":"","loginError":""}
だ最初のロードではなく、(子ルート/状態を含む)、ページがロードされます。
私はログインシーケンスをポップアップで表示しており、それが完了すると、ログインしたユーザーのuserInfoが のページに表示されますので、残りの部分が並んでいると思います。 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 sick - できるだけ早く更新を試みます。あなたの時間をありがとう! – FOR
$ httpProvider行のコメントを外してみると、このトリックが完了したようです。ありがとうございます! – FOR