我有关于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'))
Run Code Online (Sandbox Code Playgroud)
必须将该_ensureAuthenticated()方法设置为preEnter回调并评估登录状态:
_ensureAuthenticated(RoutePreEnterEvent routeEvent) {
if (!_userService.loggedIn) {
routeEvent.allowEnter(new Future<bool>.value(false));
_router.go('signin', {});
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这很好用,但_ensureAuthenticated()必须将该方法设置为preEnter每个路由中的回调.有没有办法更容易赶上preEnter全球?在root路线上设置它不起作用.
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |