認証プロセスを使用して Web サイトを開発しています。ユーザーは管理者であってもなくてもかまいません。ユーザーをルーティングするために、さまざまなコンポーネントとさまざまな状態を記述します。
HTTP リクエストを制御して認証プロセスを処理していますが、単純なユーザーがアドレスを入力して認証されていないページに移動しようとしたときにリダイレクトを強制したいと考えています。
例
管理者の URL を入力します。
このユーザーを元のページにリダイレクトするか、強制的に現在のページに留まらせたい...
私はこのようなことをしようとしています: www.seanmarchetti.com/authentication_with_angularui_router.html
しかし、私は別のプロジェクト構造を持っています
「管理者」の状態へのアクセスを制御し、使用したいのです$state.go
が、非管理者状態に.toState
からの私のコードは次のadmin.router.js
とおりです。
'use strict';
angular.module('appModule.admin')
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('/admin', '/admin/users');
$stateProvider
.state('admin', {
url: '/admin',
redirectTo: 'admin.users',
template: '<admin></admin>',
needAdmin: true,
})
.state('admin.users', {
url: '/users',
template: '<users></users>',
needAdmin: true,
})
.state('admin.apis', {
url: '/apis',
template: '<engines></engines>',
needAdmin: true,
})
})
.run(function ($rootScope, $state, Auth) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
if (toState.needAdmin && !Auth.isAdmin()) {
console.log('fromstate', fromState);
console.log('tostate', toState);
$state.go('/*UNKNOWN STATE FROM HERE*/');
event.preventDefault();
}
});
});
.state unknown
ユーザーをfromに適切にリダイレクトするにはどうすればよいadmin
ですか?