2017-04-20 5 views
0
내가 지금 나는 그가 api.ai과에서 NLP에서 얻는 요청을 관리하는 이는 모두 자바 봄 백엔드에서 일하고 있어요

백엔드

을 할 노력하고있어 무엇

해당 정보를 돌려줍니다. 이제 OAuth2를 사용하여 정보/데이터를 가져 오는 여러 서비스와 상호 작용하고 싶습니다. 내 application.properties 파일에 지금까지 내가 서비스에 대한 내 자격 증명을 추가 한

무슨 짓을

. 그러나 사용자가 예를 들어 내 서비스에서 페이스 북의 자격 증명으로 로그인 할 수있는 해결책을 찾았습니다. 하지만 거기에서 데이터를 수집하기 위해 (내 속성 파일에서 주어진 자격 증명으로) 다른 서비스에서 인증하도록 내 서비스가 필요합니다.

여러분, 솔루션을 알고 계십니까?

답변

1

내가 알고있는 논리는 다음과 같아야합니다.

SSO (OAuth2 기반)이므로 한 번만 로그인하여 OAuth2 서비스 (액세스 토큰 및 새로 고침 토큰)에서 토큰을 가져와야합니다. 액세스 토큰은 사용자가 서비스를 호출 할 때 요청 헤더에 포함됩니다. 이제 Service1은 동일한 인증 정보를 사용하여 Service2를 호출해야합니다.

Service1에서 OAuth2 서비스를 호출하여 토큰이 유효한지 확인합니다. 예라면 Service2를 호출 할 때 동일한 토큰을 사용해야합니다.

그래서 요청 헤더에서 토큰을 추출하고 Service2로 보내는 요청 헤더에 추가하십시오. 예 : 할 수 있습니다. Filter를 추가하고 Auth 정보를 ThreadLocal 변수 (또는 예를 들어 Jobs를 실행하여 새 스레드를 생성하는 경우 상속 가능한 ThreadLocal)에 저장합니다.

또한 Service2는 OAuth2 서비스를 호출하여 토큰을 검사하지만 토큰이 유효합니다.

나를 위해 필요한 모든 것입니다.