2017-01-16 2 views
2

node.js를 백엔드로 사용하여 웹 사이트를 개발했습니다. 최근에 서버없이 서버를 람다에게 배포하려고합니다. 대부분의 코드를 다시 작성 하겠지만 사용자가 로그인 한 후에 세션을 유지하는 방법을 알아 내지 못했습니다. "express-session"모듈을 사용 중이며 세션 데이터가 모두 데이터베이스에 기록됩니다.AWS 람다 서버리스 웹 사이트 세션 유지

솔직히 세션에 대한 깊은 이해가 없습니다. Google에서 검색 한 결과 내가 필요한 것을 찾지 못했습니다. 람다를 사용하여 세션을 유지 관리하는 데 샘플 코드가있는 사람이 있습니까? 또는 기타 리소스. 고마워요!

답변

2

등과 같은 POST 요청에 쿠키 (표준 HTTP 헤더), URL 매개 변수, GET 요청에서 URL 인수, 바디 인수, 같은 웹 응용 프로그램 내 세션 상태를 유지하기 위해 HTTP에서 사용할 수있는 여러 메커니즘이있다 숨겨진 양식 필드 (HTML 양식) 또는 독점적 인 HTTP 헤더.

출처 : Session Management Cheat Sheet

당신이 바퀴를 다시 발명하고 나는 '어떤 경우에는 데이터베이스에서 세션 변수를 검색 저장/람다 기능을 쓰고 싶어하지 않는 한 AWS 람다는 세션 관리와는 아무 상관이 없습니다 세션 관리를 위해 Amazon Cognito을 사용하는 것이 좋습니다. Amazon Cognito Identity SDK for JavaScript을 참조하십시오.

+0

익명 사용자를 사용하고 oauth 플로우에 'state'문자열을 저장하려는 경우 무엇이 있는지 혼란 스럽습니다. Cognito가이 일에 과도하게 노출 되었습니까? 예 : 여기 2-4 단계 : https://jsapi.apiary.io/apis/starlingbankapi/reference/0/customer-api/get-customer.html – timhc22

+1

@ timhc22 나는이 특별한 경우에 Cognito가 올바른 선택이라고 생각하지 않습니다. . 개인적으로, 나는 인증/사용자 등록이 필요한 시점까지 [localStorage] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)를 사용합니다. –

1

Amazon Cognito Identity SDK for Javascript에서 특히 유스 케이스 16을 확인하십시오. 현재 사용중인 Cognito 사용자를 검색하는 방법을 보여줍니다. 이 함수를 사용하여 현재 사용자 속성을 페이지에서 페이지로 전달할 수 있습니다.