我有一个关于angulardart和登录流程的结构性问题。我有一个与服务器交谈的服务,并具有诸如login(),logout(),loggedIn()之类的方法。这一切都非常好,但我正在寻找一种最佳实践方式,将登录流程融入到我的应用程序中。如何在未登录时导航用户登录页面
该应用程序需要用户登录。那么当用户没有登录时,我会在启动时重新路由到自定义的“登录”视图吗?当我没有登录时,我会切换部分主index.html吗?我会创建一个处理登录的自定义组件吗?
这种情况下是否存在共同的角度模式?
我有一个关于angulardart和登录流程的结构性问题。我有一个与服务器交谈的服务,并具有诸如login(),logout(),loggedIn()之类的方法。这一切都非常好,但我正在寻找一种最佳实践方式,将登录流程融入到我的应用程序中。如何在未登录时导航用户登录页面
该应用程序需要用户登录。那么当用户没有登录时,我会在启动时重新路由到自定义的“登录”视图吗?当我没有登录时,我会切换部分主index.html吗?我会创建一个处理登录的自定义组件吗?
这种情况下是否存在共同的角度模式?
我目前的解决方案是基于路由。我为登录和着陆页创建了视图。当用户登录页面并登录时,他将被路由到登录页面。当用户未通过身份验证并在网站上输入任何路径时,他将被重定向到登录页面。
这里是RouteInitializer:
..addRoute(
name: 'signin',
path: '/signin',
enter: view('view/signin.html'))
..addRoute(
name: 'dashboard',
path: '/dashboard',
defaultRoute: true,
preEnter: _ensureAuthenticated,
enter: view('view/dashboard.html'))
的_ensureAuthenticated()
方法,已被设置为preEnter
回调和评估登录状态:
_ensureAuthenticated(RoutePreEnterEvent routeEvent) {
if (!_userService.loggedIn) {
routeEvent.allowEnter(new Future<bool>.value(false));
_router.go('signin', {});
}
}
虽然这工作得很好,在_ensureAuthenticated()
方法必须在每个路由中设置为preEnter
回拨。有没有办法更容易地在全球范围内找到preEnter
?在root
路线上设置它不起作用。