2017-10-10 6 views
0

anglar 2 응용 프로그램에서 "401 인증 필요"를 가로 채고 로그인 페이지로 리디렉션 할 수있는 방법은 무엇입니까?각도 2의 http 상태 코드 401

예를 들어 연결되지 않은 경우 한 번 페이지에 액세스하려고 시도합니다. 요격기가 나를 연결시켜 주어야합니다. 그리고이 인터셉터가 서버에 의해 반환 된 401 상태를 모두 듣기를 바랍니다.

+0

사용 각도 [HTTP를 인터셉터 (https://rahulrsingh09.github.io/AngularConcepts/services) –

+0

당신은'NG2 - interceptors'를 사용할 수 있습니다. https://github.com/voliva/angular2-interceptors – hrdkisback

+0

대답을 생각해보십시오. – Drame

답변

0

외부 패키지를 사용하지 않으려면 자신의 나머지 http 서비스를 만들면됩니다.

당신이해야 할 일은 HTTP를 확장하는 서비스 클래스를 만드는 것입니다.

예 :

export class RestHttp extends Http { 

constructor(backend: ConnectionBackend) { 
    super(backened, new RequestOptions (...)) 
} 

get(url: string) { 
    return this.catchError(super.get(url)); 
} 

(delete, post, put) (...) 

private catchError(res: Observable<Response>) { 
    return res.catch((err) => { 
    if (err.status >= 400) { 
     *your logic* 
    } 
    return Observable.throw(err); 
    }); 
} 

지금 당신은 당신의 모듈 내부를 제공해야합니다. 이런 식으로 뭔가 :

app.module

(...) 
providers: [ 
    {provide: Http, useFactory: httpFactory, deps: [...] 
(...) 

export function httpFactory(backend: XHRBackend) { 
    return new RestHttp(...) 
}