在angular2中,如果用户未登录,我该怎样才能重定向用户,这样他们就无法访问已登录的视图组件代码?
我不希望该组件被击中。 如果未经过身份验证,我希望用户重定向到主页。
我可以在app.ts文件中执行此操作吗?
答案 0 :(得分:2)
您可以使用CanActivate
防护来检查用户是否已登录,然后再导航到路线。
创建guard.service.js
:
import { CanActivate } from '@angular/router';
@Injectable()
export class AuthGuard implements CanActivate {
canActivate() {
//Here check if the user is logged in
return isLoggedIn;
}
现在导入AuthGuard类,并使用路由组件中的AuthGuard
:
{
path: 'admin',
component: OnlyForLoggedInUsers,
canActivate: [AuthGuard]
},
在这里,您可以找到有关实施canActivate后卫的更多详细信息:https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard