2017-04-24 3 views
1

현재 기본 보안을 통해 사용자 인증을 허용하는 매우 간단한 나머지 API가 있습니다. 내 각 클라이언트는 로그인 입력에서 전자 메일과 암호를 받고 서버에서 사용자를 가져옵니다. 이메일과 비밀번호는 http 헤더에서 보내집니다. 문제는 내 보안 필터 (JAX-rs java, jersey backend impl)에서 인증 헤더가 비어 있음을 알게되었을 때입니다.각도 2 인증 HTTP 헤더 비어 있음

내가 그들을 각도에서 비어있게 보냈습니까 ??

getSecuredUser(email: string, password: string){ 
    let headers: Headers = new Headers(); 
    headers.append("Authorization", "Basic " + email + ":" + password); 
    headers.append("'Access-Control-Allow-Origin': '*' ", "application/x-www-form-urlencoded"); 
    return this.http.get(DEFAULT_PATH + 'users/' + email, headers).subscribe(
     (data: Response) => { 
     var result = data.json(); 
     return result; 
     } 
    ); 
    } 
+0

브라우저의 네트워크 디버그 콘솔에서 AUTH 헤더가 포함되어 있는지 확인하십시오. 코드가 괜찮아 보인다. –

답변

0

문제는 기본 인증의 헤더입니다.

getSecuredUser(email: string, password: string){ 
    let headers: Headers = new Headers(); 
    headers.append("Authorization", "Basic " + btoa(`${email}:${password}`); 
    headers.append("'Access-Control-Allow-Origin': '*' ", "application/x-www-form-urlencoded"); 
    return this.http.get(DEFAULT_PATH + 'users/' + email, {headers: headers}).subscribe(
     (data: Response) => { 
     var result = data.json(); 
     return result; 
     } 
    ); 
    }