2017-12-08 2 views
1

마이크로 서비스 아키텍처를 사용하여 웹 응용 프로그램을 개발하려고합니다. 백 엔드 저는 마이크로 서비스 용으로 봄, 봄 구름 및 봄 부츠를 사용합니다. 그리고 프론트 엔드 어플리케이션은 앵귤러 2 어플리케이션입니다. 내 프런트 엔드 응용 프로그램은 앵귤러 2 응용 프로그램에서 호출하는 백 엔드 나머지 끝점에 따라 작동합니다.각도 응용 프로그램에서 ReST API 호출

  • 이 웹 응용 프로그램에 대한 로그인을 만들려고합니다. 백엔드 서비스 인증을 위해 API 키를 사용할 계획입니다. 내 로그인 확인 기능도 마이크로 서비스입니다. 그래서 여기에 내 백엔드 서비스를 호출 할 때이 API 키 기능을 어떻게 구현할 수 있습니까? 고유 변수로 계속 설정해야합니까?

로그인 기능 자체가 마이크로 서비스이므로 API 키를 동적으로 관리 할 수 ​​없습니다. 이미 구름에 배포 된 로그인 확인 서비스를 호출하기 위해 API 키를 사용해야합니다.

누구든지이 시나리오를 이해하는 데 도움이 될 수 있습니까?

답변

1

이 시나리오에서 API 키는 웹 앱으로 사용할 수 없습니다. API 키는 웹 앱에 공개적으로 표시됩니다. 인증을 구현하는 올바른 방법은 매우 복잡하고

전체 프로세스의 높은 - 레벨 개요은 다음과 같이 요약 될 수있다 :

  1. 사용자는 자신의 자격 증명을 사용하여 로그인을 시도합니다. 이것은 인증을 위해 서버로 전송됩니다.
  2. 자격 증명은 DB 레코드에 대해 유효성이 검사됩니다. 유효성을 검사하면 JWT 토큰이 다시 클라이언트로 전송됩니다.
  3. 클라이언트는 유스 케이스에 따라이 JWT 토큰을 메모리 또는 로컬 저장소에 저장해야합니다. 유효한 JWT는 사용자가 인증되었음을 나타냅니다.
  4. 모든 후속 요청에 대해이 JWT는 요청 헤더에 추가되어야합니다. 서버는 인증을 위해이 JWT 토큰을 찾습니다.
  5. 클라이언트 측 경로에 대한 액세스는 라우트 가드를 사용하여 인증 된 사용자로부터 보호됩니다.
  6. 이 JWT 토큰에는 만료 시간이 있으며 만료 기간을 계속 확인해야합니다.
  7. 인증 된 사용자의 JWT 토큰이 만료 된 경우 서버는 새로 고침 토큰을 반환해야하며 클라이언트는이 새로 고침 토큰을 사용하여 새 인증 된 JWT 토큰을 요청해야합니다.

시작하려면 this 문서를 참조하십시오.

+0

예. 흐름을 이해했습니다. 하지만 JWT 만료 시간에 대한 하나의 쿼리가 있습니다. 한 프로세스 중간에서 시간이 만료 되었다면 다시 로그인 할 때 영향을 미칩니다. 이러한 유형의 아키텍처에는이 시간 관리가 필수입니까? 그렇지 않으면 프런트 엔드 응용 프로그램을 사용할 때마다 다시 로그인해야합니다. 그 가능성은 무엇입니까? 제 요점을 명확히 해 주시겠습니까?,이 건축술의 유형을 가진 초보자부터. – Jacob

+0

JWT 토큰 만료 시간은 일반적으로 30 분과 같이 몇 분입니다. 몇 시간 또는 며칠이 걸릴 수도 있습니다.많은 보안이 필요하지 않고 사용자 경험이 염려되는 경우 만료 시간을 늘릴 수 있습니다. 만료되지 않는 토큰도 발행 할 수 있습니다. 그러나 업계 모범 사례를 항상 준수하는 것이 좋습니다. –

+0

알겠습니다. 귀하의 의견을 말씀드립니다. 귀하의 회신과 귀중한 안내에 감사드립니다. – Jacob

관련 문제