我有一个关于 angulardart 和登录流程的结构性问题。我有一个与服务器通信的服务,并且有 login()、logout()、loggedIn() 等方法。这一切在 angular 中都非常有效,但我正在寻找一种将登录流程合并到我的应用程序中的最佳实践方法。
该应用程序要求用户登录。那么当用户未登录时,我是否会在启动时重新路由到自定义“登录” View ?未登录时,我会切换主 index.html 的部分内容吗?我会创建一个自定义组件来处理登录吗?
这种情况是否有共同的角度模式?
最佳答案
我目前的解决方案是基于路由。我创建了用于登录和登录页面的 View 。当用户在登录页面并登录时,他将被路由到登录页面。当用户未通过身份验证并进入网站上的任何路径时,他将被重定向到登录页面。
这是 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
上设置它路线不起作用。
关于dart - 未登录时如何导航用户登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21676813/