Я сделал это ..
Объект успеха не может быть возвращен из auth.service.ts. Этот файл возвращает подписку вместо значений. Может кто-нибудь подскажите пожалуйста как вернуть значения вместо подписки.
login.component.ts
loginObject: Login;
errorMessage: string = "";
signIn(email, pass) {
let newLogin = this.loginObject = {
email: email,
password: pass
}
let result: any = this.authService.signIn(newLogin)
console.log(result);
if (result.success == true) {
console.log("Reached login success");
localStorage.setItem('token', result.token);
this.router.navigate(['']);
} else if (result.success == false) {
console.log(this.errorMessage = "Invalid username or password");
this.router.navigate(['/login']);
}
}
auth.service.ts
export class AuthService {
constructor(private router: Router, private http: HttpClient) { }
serviceUrl: string = "http://localhost:3000/register/";
register: Observable<Register[]> = this.http.get<Register[]>(this.serviceUrl);
signIn(loginObject) : any {
return this.register.subscribe((res) => {
res.filter((cred) => {
if (loginObject.email === cred.email && loginObject.password === cred.password) {
console.log("in IF");
let succesObject = {
success: true,
token: "1234"
}
console.log(succesObject)
return succesObject;
}
else {
console.log("Reached")
let failureObject = {
success: false,
token: null
}
return failureObject;
}
})
})
}
loggedIn() {
return !!localStorage.getItem('token');
}
logOutUser() {
localStorage.removeItem('token');
this.router.navigate(['/login/'])
}
}
Я поместил электронную почту и пароль, которые присутствуют в базе данных, но код не может достичь successObject
и не может пройти проверку подлинности, даже если значения совпадают.
Консоль
Subscriber {closed: false, _parentOrParents: null, _subscriptions: Array(1), syncErrorValue: null, syncErrorThrown: false, …}
closed: true
destination: SafeSubscriber {closed: true, _parentOrParents: null, _subscriptions: null, syncErrorValue: null, syncErrorThrown: false, …}
isStopped: true
syncErrorThrowable: true
syncErrorThrown: false
syncErrorValue: null
_parentOrParents: null
_subscriptions: null
__proto__: Subscription // console.log(result) in login.component.ts
in IF
auth.service.ts:28 Objectsuccess: truetoken: "1234"__proto__: Object
2auth.service.ts:32 Reached