Ich versuche, den Authentifizierungsprozess mit Angular und .Net-Kern zu verstehen, die mir ein JWT Bearer-Token (Works) sendet. Also mein Problem ist, dass ich nicht weiß, was ich im Wächter und Auth-Dienst tun soll, um Benutzer (mit Rollen später) richtig zu verwalten. Aber ich habe ein paar Sachen ausprobiert und jetzt weiß ich nicht, was ich in meinem AuthService machen soll.Angular 5 Authentifizierung
BEARBEITEN Ich werde ein Token und Ablaufdatum vom Server erhalten, nachdem Login-Post erledigt ist. also will ich diese und später auch noch anfragen aber idk wie. und was ich zurückgeben sollte. Diese
ist, wie mein AuthService wie folgt aussieht:
@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');
}
}
Nun weiß ich nicht, wie zu überprüfen, ob das Token gibt es und wie boolean zurück, wenn seine beobachtbar sind. Und nach dem Login ist alles erledigt, was auch für zukünftige Untersuchungen wichtig ist?
Und m AuthGuard sieht wie folgt aus:
@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}});
}
}
Was ist das Problem>? –
Veröffentlichen Sie den Code, nicht ein Bild davon. –
Ich würde annehmen, dass Sie das Token auch speichern möchten. Oder was ist der Inhalt von "currentUser"? Und ja, wie gesagt, was ist das Problem? :) – Alex