Я пытаюсь создать форму проверки логина в угловых, которая проверяет значение из базы данных, но я не могу подтвердить подлинность - PullRequest
0 голосов
/ 16 мая 2019

Я сделал это .. Объект успеха не может быть возвращен из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...