Основной маршрутизатор моего приложения перенаправляет на страницу входа, если пользователь не вошел в систему.
Он отлично работает для большинства страниц, но когда указанная страница содержит дочерний маршрутизатор, логика, по-видимому, не попадает в конвейер основного маршрутизатора, предотвращая перенаправление (а также не отображая страницу).
основной маршрутизатор:
configureRouter (rc: RouterConfiguration, router: Router) {
this.router = router;
rc.addAuthorizeStep(this.requireAuth);
const auth = { authenticated: true, needsCurrentOrg: true };
const loginRoute = {
route: 'login/:token?',
name: 'login',
moduleId: PLATFORM.moduleName('views/login/login'),
};
rc.map([
{
route: [ROOT_PAGE, DASHBOARD_PAGE],
name: DASHBOARD_PAGE,
moduleId: PLATFORM.moduleName('views/dashboard/dashboard'),
settings: auth
},
{
route: CREDENTIALS_PAGE,
name: CREDENTIALS_PAGE,
moduleId: PLATFORM.moduleName('views/credentials/credentials-root'),
settings: auth
})]
}
маршрутизатор учетных данных:
configureRouter (rc: RouterConfiguration) {
rc.map([
{
route: '',
name: 'credentials-list',
moduleId: PLATFORM.moduleName('./credentials-grid'),
}
]);
}
Так что, если я нажму /#/dashboard
без входа в систему, я перенаправлюсь на /login
, но ничего не произойдет, если я нажму /#/credentials
: пустая страница, перенаправление отсутствует. Я вставил debugger
в код промежуточного программного обеспечения requireAuth
, и в первом случае он вступает, во втором случае он не проходит через