2017-10-23 3 views
0

내 응용 프로그램에서 JWT 보안을 추가하려고합니다. 응답 텍스트에서는 사용자 및 사용자 권한을 추가합니다. 모두 효과가 있었지만 응답 텍스트를 분할하려고 시도하면 작동하지 않습니다. 내가 분할을 사용 해달라고하면응답 텍스트를 분할하는 방법은 무엇입니까?

login(username: string, password: string): Observable<boolean> { 
    return this.http.post(AUTH_USER_PATH, JSON.stringify({username: username, password: password}), 
     this.getPlainRequestOptions()) 
     .map((response: Response) => { 


      let token: string = response.headers.get('Authorization').slice(7); //working 
      let authorities: string[] = JSON.parse(response.text().split('|')[0]); //not working 
      let username: string = JSON.parse(response.text().split('|')[1]); //not working 


      console.log(authorities); 
      console.log(username); 
      if (token) { 
       localStorage.setItem('token', JSON.stringify(token)); 
       localStorage.setItem('authorities', response.text()); 
       localStorage.setItem('username', response.text()); 
       return true; 
      } else { 
       return false; 
      } 
     }) 
     .catch((error: any) => Observable.throw(error)); 
} 

후 콘솔에서 나는 참조 :

[ROLE_USER, ROLE_ADMIN]|user1 

어떻게 쉽게 결과를 얻을 수있는 문자열 (배열)을 분할?

authorities = [ROLE_USER, ROLE_ADMIN]; 
username = "user1"; 
+0

은 당신이 쓴 것을 바탕으로, 당신은'[ROLE_USER, ROLE_ADMIN]'에'authorities'의 배열을받지 않습니다 도움이 될 링크입니다. 'response.text(). split ('|') [0]'은 [ "ROLE_USER, ROLE_ADMIN]"'문자열을 얻어야하는데,이 문자열을 추가로 배열로 파싱 할 수 있습니다. – eminlala

+0

하지만이 분할을 콘솔에 표시하지 않고 추가하면됩니다. 나는 로그인 할 수 없다. –

답변

관련 문제