ich eine Anmeldung mit folgenden Code authentifizieren:Angular 2: beobachtbare nur zurückkehrt "false"
auth.service.ts
import { User } from './user.interface';
import { Http, Response } from '@angular/http';
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class AuthService {
token: any;
currentUser: any;
constructor(private router: Router, private http: Http) {
this.currentUser = JSON.parse(localStorage.getItem('currentUser-hb'));
}
isAuthenticated() {
const state = new Subject<any>();
if (this.currentUser != null) {
const token = this.currentUser.token;
const body = JSON.stringify({token: token});
return this.http.post('https://test.de/validatetoken', body)
.map((response: Response) => {
const authResponse = response.json().response;
if (authResponse) {
state.next(true);
alert('Valid Token');
} else {
state.next(false);
alert('No valid Token');
}
return state.asObservable();
});
}...
navigation.component.ts
isAuthenticated: any = false;
constructor(private authService: AuthService, private router: Router) {
this.authService.isAuthenticated().subscribe(
data => console.log(data)
);
if (this.isAuthenticated !== false) {
this.router.navigate(['']);
}
}
Der Auth.service warnt, wenn die aktuelle Token ist gültig oder nicht. Aber das Observable kehrt jedes Mal "falsch" zurück, obwohl das Token gültig ist. Ich kann den Fehler nicht finden.
Vielen Dank! :) Ich habe ein Thema verwendet, weil der Code von einem Kurs stammt, aber die Authentifizierung war über Firebase. – Harvix
Nur eine Frage. Wenn ich eingeloggt bin, der Code 'this.router.navigate (['']); 'nicht funktionieren, aber Winkel wirft keinen Fehler. Weißt du, wie man das löst? – Harvix
Hmm ... Schwer zu sagen mit diesem kleinen Code und nicht wissen, wie Ihr Routing aussieht. Scheint aber wie eine Art Routing-Problem. – Alex