登录验证需要去实际登录
问题描述:
之前,我做了一类特殊的验证,以检查用户是否如果不是它不应该打开它想要去的页面登录。问题是当我添加行我的程序不会再发送给需要去的组件。登录验证需要去实际登录
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
答
解析器可能会帮助你。还是您正在使用身份验证方法,它在逻辑上是正确的,但更精确的解决方案是有无缝做认证:)
https://www.codementor.io/max_diachenko/tutorials/angular-2-route-resolves--typescript-du1089pdm
嗯,我看了一下链接,但我仍然不具有任何线索,我怎么能痛下决心出我的路由 –