2017-12-19 7 views
-1

I 사용자 로깅 서비스를 만들기 위해 노력하고있어하지만 사용자 이름과 암호가 올바른 서버 경우 로그인 버튼 HTTP 요청에 사용자가 클릭이 API를 서버에 호출 데이터 분석, 몇 가지 문제를 가지고각도 HTTP 요청 - 얻는 데이터

사용자 서비스 방법 ... 사용자 정보로 응답 나는 사용자 변수에이 정보를 분석 할 필요가 있고 사용자가 NULL이 반환되는 다른 사실이 아니다 false를 반환하지만 항상 true를 돌려 metod 경우 :

import { Injectable } from '@angular/core'; 
import { HttpClient } from '@angular/common/http'; 
import 'rxjs/add/operator/map'; 
import { User } from '../entities/User'; 

@Injectable() 
export class UserService { 

    private usersUrl: 'http://localhost:8080/api/users'; 

    user: User; 

    constructor(private http: HttpClient) {} 

    isLoggedIn() { 
    return this.user != null; 
    } 

    isAdmin() { 
    return this.user.isAdmin; 
    } 

    unLoggin() { 
    this.user = null; 
    } 

    login(username: string, password: string) { 
    return this.http.get<User>(`${this.usersUrl}/verify?username=${username}&password=${password}`) 
     .map(
     user => { 
      this.user = user; 
      return this.user != null; 
     }); 
    } 

} 
JSON에서

사용자 예 :

{"id":2,"name":"Some","email":"sometni","username":"iafouafa","password":"Hoifhnaol"} 
나는 여러 문제가 있다고 생각 6,

은, 먼저 내가 해결할 수 방법은 무효입니다,하지만 난 부울 반환에 리메이크 맵 운영자에게하지 말 return 문을 넣으면 항상 false를 돌려줍니다 ... 더 많은 정보가 필요하면 필요한 것을 말해주십시오.

죄송합니다.

도움 주셔서 감사합니다.

+0

는 당신이 이제까지 로그인 방법이라고 적이 당신의 isLoggedIn() 메서드를 호출 할 수 있습니까? 참고 : 귀하의 요청을 수행 할 수 있도록하려면 각 사용하는 경우 HttpClient를 (CF는 문서를 RXJS) 관측을 반환, 당신이에 가입해야합니다'this.login.subscribe (데이터 => { 을 console.log ("사용자 로그인 : + 데이터) });' –

+0

지도 메소드를 제거하고 코드를 사용하면 사용자 정보가있는 콘솔 json 문자열에 로그인하므로 사용자 이름과 비밀번호가 정확합니다. 'data => {this.user = data}'그리고'return this.user! = null' 그것은 거짓을 반환합니다 –

답변

0

이 시도 :

login(username: string, password: string) { 
    return this.http.get<User>(`${this.usersUrl}/verify?username=${username}&password=${password}`) 
     .map(
     user => { 
      return user; 
     }); 
    } 

지금 로그인 performe 로깅을 수행 어딘가에 지금

this.login(username,pass).subascribe(user => { 
     this.user = user; 
    } 

당신이

+0

고맙습니다, 작동합니다! –