2017-10-30 5 views
0

다음과 같은 시나리오가 있습니다 : 회사 전체 REST 인증 서비스를 사용하는 Node.js REST API를 사용하는 Angular 4 웹 앱.암호화 된 JWT 토큰 (JWE)에 데이터를 어떻게 추가 할 수 있습니까?

이 REST 인증 서비스는 node-jose 라이브러리를 사용하여 해독 할 수있는 JWE 토큰을 반환하고 내 Node.js API는 사용자의 역할을 검사하여 웹 앱을 사용할 수 있는지 결정합니다.

사용자 역할에 따라 각도 웹 앱에서 일부 경로에 대한 액세스를 허용/거부 할 수 있으므로 Guard routes을 사용하고 있습니다.

내 질문은 : 원래 JWE 토큰에 사용자 역할을 추가하고 유효한 상태로 유지하면서 각도 웹 앱에 반환 할 수 있습니까? 그것이 가능했던 경우

request.post('http://security.companyname.com/service/security/auth') 
      .send({ username: req.body.username, password: req.body.password }) 
      .set('Content-Type', 'application/json') 
      .then(authResult => { 
        res.json({ 
         status: true, 
         token: authResult.text, 
         error: null 
        }); 
      }) 
      .catch(err => { 
       res.json({ status: false, token: null, error: err.message }); 
       console.log(err.message); 
      }); 
+0

백엔드가 해당 토큰을 거부 할 수 있다고 생각하지 않습니다. 프런트 엔드에서 수정할 수 있으면 보안 목적을 상실 할 수 있습니다. – Dhyey

답변

1

아니, 사람이 유효한 토큰을 생성 할 수 :

다음은 토큰의 요청 및 웹 응용 프로그램으로 돌아은 이것이다. JWT는 비밀 키로 서명되고 내용을 변경하면 서명이 무효화되고 서버는 토큰을 거부해야합니다.

올바른 토큰을 만들려면 응용 프로그램에 비밀 키가 있어야하며 웹 응용 프로그램에서 작업 중이므로 키가 클라이언트 측에서 보호되지 않습니다. 새로운 토큰을 서버에 요청해야합니다.