ログインページと3ページが追加されています。今私は認証機能を行う必要があります。認証が定義されていない場合は、ログインページにリダイレクトする必要があります。認証が真であれば、checkLogin機能に移動する必要があります。私はこれを行う方法を取得していないが、私はページのいずれかでこのように試していた。angle2とtypescriptを使用してページを認証する方法
TS:
import { Router, CanActivate } from '@angular/router';
@Injectable()
export class PageComponent implements CanActivate {
constructor(private router: Router) { }
canActivate() {
if (localStorage.getItem('authToken') == undefined) {
this.router.navigate(['/login']);
}
else {
/*Checklogin*/
this.ApiService
.checklogin()
.subscribe(
user => {}
}
}
が、私はエラーを取得:
Class 'PageComponent' incorrectly implements interface 'CanActivate'.
Types of property 'canActivate' are incompatible.
Type '() => void' is not assignable to type '(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => boolean | Observable<boolean> | Pr...'.
Type 'void' is not assignable to type 'boolean | Observable<boolean> | Promise<boolean>'.
私は私がやっているものを知らないが正しいかどうか、誰も私にあなたが返す必要が
あなたが方法 – Aravind
から何かを返されていない私が行う方法が分からない、私はこの方法を試した、あなたは私を提案することができますしてください – Bhrungarajni
'canActivateを行う方法() '**は値を返す必要があります**。 https://stackoverflow.com/questions/43487827/how-to-apply-canactivate-guard-on-all-the-routes –