我創建了一個簡單的AuthGuard來驗證令牌,並返回true/false響應。 API服務器(快速)和Auth服務工作正常,但有一些錯誤發生在if (this.isValid())
,因爲無論如何,用戶總是被重定向到登錄。爲什麼我的認證防護工作不正常? Angular
export class AuthGuard implements CanActivate {
constructor(private router: Router,
private _authService: AuthService) { }
canActivate() {
if (this.isValid()) {
return true;
} else {
// not logged in so redirect to login page
this.router.navigate(['/login']);
return false;
}
}
isValid(): boolean {
let isValid = false;
if (localStorage.getItem('currentUser')) {
this._authService.verifyToken().subscribe(validToken => {
isValid = validToken === true;
});
}
console.log(isValid);
return isValid;
}
}
我的isValid
函數在哪裏導致這個問題?
你從來沒有在控制檯中看到記錄了一個錯誤?你調試過'IsValid'函數嗎?您的auth服務是否正常工作? 'console.log(isValid);'揭示了什麼? –
控制檯日誌顯示isValid爲true。我沒有錯誤,我的驗證服務正在工作 – Moshe