2
之前,我做了一類特殊的驗證,以檢查用戶是否如果不是它不應該打開它想要去的頁面登錄。問題是當我添加行我的程序不會再發送給需要去的組件。登錄驗證需要去實際登錄
Validation.ts
export class validation {
user = {};
loggedinvalidation(user) {
if (user) {
this.user = user;
console.log("test login");
return true
} else {
this.user = {};
console.log("test logout");
return false
}
}
}
app.component.ts
export class AppComponent {
...
login(email:any, password:any) {
this.af.auth.login({ email: email, password: password }, {
provider: AuthProviders.Password,
method: AuthMethods.Password
});
this.modal.close();
this.router.navigate(['dashboard']);
}
}
dashboard.component.ts
export class DashboardComponent {
constructor(public af: AngularFire, public router: Router) {
this.vali = new validation();
this.af.auth.subscribe(user => {
if (this.vali.loggedinvalidation(user)) {
this.af.auth.subscribe(auth => {
...
});
}
else {
this.router.navigate(['/']);
}
});
}
}
當我運行程序&開始在/''它工作正常,但是當我嘗試登錄它給我這在我的控制檯。問題是它的第一個給我一個測試註銷,這就是爲什麼它沒有路由到儀表板。任何想法如何我可以更快或其他登錄實際上發生驗證?
test logout
test login
嗯,我看了一下鏈接,但我仍然不具有任何線索,我怎麼能痛下決心出我的路由 –