我目前在我的authguard中有以下代码,以防止在未登录时访问路由,但我还希望将未经验证的用户发送到验证页面,我该怎么做?
canActivate(): Observable<boolean> {
return Observable.from(this.auth)
.take(1)
.map(state => !!state)
.do(authenticated => {
if (!authenticated) this.router.navigate(['/login']);
})
}
答案 0 :(得分:1)
您可以检查emailVerified
属性的值:
constructor(private af: AngularFire) { }
canActivate(): Observable<boolean> {
return this.af.auth
.take(1)
.map(auth => auth.auth.emailVerified)
.do(emailVerified => {
if (!emailVerified) this.router.navigate(['/verify-email']);
});
}
请注意。代码中的this.auth
可能已经是一个可观察的。无需将其包装在Observable.from()
内。