Bla*_*axy 3 firebase firebase-authentication angular
我们的项目有结构:
用户使用调用Firebase的表单进行身份验证后,必须将用户重定向到只有登录用户可访问的部分.
如您所见,帐户组件有两个孩子.
我正在寻找一种正确的方法来阻止非身份验证用户访问我的网站的受保护区域,并且不知道我是否必须在组件中调用authService (appComponent?AccountComponent?OnInit中的一个组件?)或者在 CanActivate或CanActivateChild 的路径定义中?
使用CanActivate Route Guard.
假设用户获得身份验证后的路由是 http:// localhost:3000 /#/ dashboard
如果未对用户进行身份验证,则可以使用以下方法阻止仪表板路由(与AccountComponent及其子代相关).
在你的路线上:
{ path: 'dashboard',
canActivate: [ AuthService ],
component: AccountComponent,
children: [
ProfileComponent,
FilesComponent
]
}
Run Code Online (Sandbox Code Playgroud)
并从您的身份验证服务实现CanActivate:
@Injectable()
export class AuthService implements CanActivate {
isAuthenticated(): boolean{
// auth logic
}
canActivate(): boolean{
const isAuth = this.isAuthenticated();
if(!isAuth){
//if not authenticated do something. e.g redirect to login page
this._router.navigate(['','/login'])
}
return isAuth;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |