【发布时间】:2018-06-26 00:15:31
【问题描述】:
在 Angular 2 中,如果用户未使用路由器版本 2.0.0-rc.1 进行身份验证,我如何重定向用户
我希望在存储路线的 app.component 中执行此操作。
我想检测用户在访问页面组件之前是否已通过身份验证。 所以我可以将它们重定向到登录。
我尝试了 canActivate,这似乎不适用于我的路由器版本。
我正在为这个版本的路由器寻找解决方案:"@angular/router": "2.0.0-rc.1"
或
最新版本路由器的解决方案。如果提供了,你能告诉我如何使用 git bash 和这个解决方案更新我的路由器版本。
这是我当前的代码:
export class AppComponent implements CanActivate {
authService: AuthService;
userService: UserService;
constructor(_authService: AuthService, _userService: UserService, private location: Location, private router: Router) {
this.authService = _authService;
this.userService = _userService;
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable < boolean > | boolean {
//This doesnt get hit
console.log("here");
return true;
}
}
【问题讨论】:
-
John Papa 在这里有一个很好的使用 CanActivate/CanDeactivate 的例子:github.com/johnpapa/event-view。虽然,他使用的是 RC4。
-
更新路由器节点模块的 git bash 命令是什么?对于 rc4
-
理想情况下我想使用我当前的路由器版本
-
2.0.0 路由器已弃用。您不想使用 3.0.0,因为那是 Angular 2 的最新版本吗? (3.0.0-beta.2 可能真的可以工作)
-
可能,是的,任何与路由器相关的东西。这可能会产生很大的影响。我进行了过渡踢和战斗,但这是值得的。 :)