我試圖瞭解與Angular和.Net核心的身份驗證過程,它向我發送了一個jwt持票人令牌(Works)。所以我的問題是,我不知道我應該怎麼做在守衛和身份驗證服務來正確地管理用戶(以後有角色)。但我嘗試了一些東西,現在我不知道我應該在我的AuthService中做什麼。Angular 5身份驗證
編輯 登錄後,我會從服務器得到一個令牌和到期日期。所以我想存儲這些,後來還聲稱,但idk如何。和我應該回來的。
這是我AuthService看起來像:
@Injectable()
export class AuthService {
isLoggedIn = false;
constructor(private http: HttpClient) {}
login(email:string, password:string) :Observable<boolean>{
this.http.post('/login', {email, password})
.subscribe(data =>
{
//TODO: check for Token ???
let userAuth = data;
if(userAuth) {
localStorage.setItem('currentUser', JSON.stringify(userAuth));
return true;
}else{
return false;
}
},
(err: HttpErrorResponse) => {
if(err.error instanceof Error){
console.log("error client side");
}else{
console.log("Server side error.");
}
});
//what should i return ????? and how
}
logout() {
localStorage.removeItem('currentUser');
}
}
現在我不知道如何檢查,如果令牌是存在的,如果其顯着如何返回boolean變量。之後登錄完成後,檢查未來調查也很重要?
和M AuthGuard看起來是這樣的:
@Injectable()
export class AuthGuardService implements CanActivate{
constructor(private router:Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
boolean | Observable<boolean> {
if(localStorage.getItem('currentUser')){
return true;
}
this.router.navigate(['auth/login'],
{queryParams: { returnUrl: state.url}});
}
}
什麼問題>? –
發佈代碼,而不是它的圖像。 –
我假設你也想存儲令牌。或者'currentUser'的內容是什麼?是的,如上所述,這有什麼問題? :) – Alex