AWS Cognito 올바른 사용자 흐름

매트 M :

나는 AWS 내 PHP 기반 시스템을 마이그레이션하기 위해 노력하고있어하지만 난으로 어려움을 겪고있어 가장 큰 것은 사물의 사용자 관리 / 인증 측면이다. 내 RDS 인스턴스에서 데이터를 가져 오기 위해 API 게이트웨이 및 람다 기능을했습니다 그리고 나는 그들이 생성하는 데이터를 보호하기 위해 인증 토큰 API 키 또는 ID를 사용할 수 있습니다. 내가 정말 고민하고있어 사물의 Cognito 측이다. 다음과 같이 내 머리에서 시스템이 작동까요?

  1. 사용자는 내 웹 사이트로 이동하고 로그인 버튼을 클릭합니다.
  2. 사용자가에서 호스팅 cognito UI 및 로그로 리디렉션됩니다.
  3. 사용자는 선택한 페이지로 이동하고 ID 토큰은 URL에 표시됩니다
  4. 나는 로컬 스토리지의 ID 토큰을 저장하기 위해 자바 스크립트를 사용 (하지 않도록이 올바른 방법입니다)
  5. 그때 실행하고 내 API를 인증하는 SDK에 그것을 밖으로 토큰 ID를 끌어와 사용할 수 있습니다

PHP에서 나는 세션이 세션들이 로그인 페이지로 리디렉션 될 존재하지 않은 경우 내 시스템에 액세스 로그인하지 않은 사용자를 방지하기 위해 페이지를로드하기 전에 존재를 확인한다. 어떻게 내가 Cognito / JWT이 작업을 수행 할 내 사이트에 대한 모든 HTML 페이지의 상단에 람다 함수와 JWT를 확인해야합니까? 나는 기본적으로 전용 홈 페이지를 제외하고, Cognito 사용자 풀을 통해 로그인 한 사용자가 내 시스템의 모든 HTML, JS, CSS 파일에 액세스 할 수 있도록합니다.

로버트 Moskal :

당신이 cognito 물건의 대부분은 밖으로 일한 것 같은데.

당신은 웹 클라이언트에서 API 게이트웨이를 호출하는 경우 가장 가능성이 헤더에 그 JWT 토큰을 전달하는 그 API를 호출은 사용자가 로그인하기 전에 실패합니다.

당신이 클라이언트 측 프레임 워크 (반작용, 뷰 등)를 사용하는 경우, 당신은 아마 다양한 UI 컴포넌트를 렌더링하는 라우터에 액세스 할 수 있습니다. 이것은 PHP에서 서버에 무엇에 analgously 작동하고, 그것은 특정 경로 나 존재가 로그인 사용자에 따라 특정 구성 요소의 렌더링을 잠글 매우 간단합니다. 아마도 상당한 노력이 필요합니다 프레임 워크없이 그 일을.

또한, PHP는 서버를 서 토큰 JWT를 확인하고 당신이 일반적으로 인증 된 사용자를 위해 무엇을 할 수 있습니다.

아니면 하이퍼 현대, 서버없는 접근을 할 수있다. 당신은 S3 버킷에 HTML / CSS를 호스팅하고 그 앞에 CloudFront를 분포를 둘 수 있었다. 당신은 S3 버킷의 콘텐츠에 대한 사용 권한을 적용 할 에지 기능 @ 일부 람다를 작성할 수 있습니다.

당신은 API 기반의 자바 스크립트 응용 프로그램을 작성하는 경우 가능성, 당신은 당신의 마크 업 / CSS를 보호 할 필요가 없습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=294302&siteId=1