2017-12-11 21 views
0

인증 된 웹 서비스 (인증 토큰 반환)에 연결해야하는 Akka Streams 및 Akka Http를 사용하는 응용 프로그램을 작성하고 있습니다. 정기적으로 서비스를 쿼리하고 쿼리 (파일 다운로드 등)에 대한 응답으로 잠재적으로 다른 작업을 수행합니다. 인증 토큰은 일정 시간 후에 시간이 초과되므로 새로 고쳐야합니다.클라이언트 응용 프로그램에 대해 akka-streams 및 akka-http를 사용하여 인증을 처리하는 방법

인증 토큰은 어떻게 처리해야합니까? 그래프의 다른 Flow (서비스를 쿼리하는 모든 곳)로 전달되어야하며, 인증 토큰이 무효가되면 새로운 것을 요청해야합니다.

하나의 아이디어는 스트림 외부에서 인증 요청을 한 다음 스트림을 구체화 할 때 토큰을 전달하여 각 플로우가 materialization 중에 매개 변수로 토큰을 얻도록하는 것입니다. 그런 다음 토큰이 결국 타임 아웃되면 스트림이 실패하고 나는 그것을 찢어 버리고 새로운 것을 만듭니다. 나는 이것이 효과가있을 것이라고 생각하지만 조금 서투른 것처럼 보이고 스트림 기반 세계와 완전히 일할 수있는 방법이 있는지 알고 싶다.

인증 토큰이 스트림을 통해 흐르는 다른 데이터와 압축되어 필요할 수있는 각 Flow 요소로 전달 될 수 있다는 생각이 들었습니다. 그런 다음 어떤 시점에서 토큰이 실패하면 스트림은 어떻게 든 피드백 흐름 또는 복구 메커니즘을 사용하여 새로운 것을 요청합니다. 그러나 이것이 가능한지 또는 그것을 구현하는 방법을 모르겠습니다.

내가 생각하지 못했던 세 번째 접근 방식이 있습니까? 아니면 Akka 스트림 또는 Akka HTTP에서 놓친 부분이 있습니까?

답변

0

akka-httpakka-streams에 내장되어 있으므로 앞면이 이미 덮여 있습니다. akka-http를 사용하는 사용자 세션 관리의 경우, akka-http-session을보십시오. this excellent post을 통해 읽을 수도 있습니다.

내가 최근에 업로드 한 일부 샘플 코드를 살펴볼 수도 있습니다.이 코드는 akka-http-session - available here을 사용하지 않습니다. 희망이 자료의 일부 도움이됩니다.