2017-02-26 4 views
0

내 서버에서 express-session을 만들었습니다. 사용자가 로그인했는지 여부에 대한 확인을이 저장소에 저장하려고합니다. 코드의 비 서버 측에서이 익스프레스 세션에 액세스하는 방법을 모르겠습니다.Javascript 클라이언트에서 Express-Session을 참조하는 방법

기본적으로 사용자가 로그인하면 사용자가 보는 페이지를 편집합니다. 사용자가 로그인 한 경우에만 페이지를 편집 할 것인지 알 수 있습니다. 그렇지 않으면 익스프레스 세션에 액세스해야합니다.

답변

0

클라이언트 측 (예 : 브라우저)에서 빠른 세션 데이터에 액세스 할 수 없습니다. 서버 측에서만 액세스 할 수 있습니다.

참고 세션 데이터는 쿠키 자체에 저장되지 않고 세션 ID로 저장됩니다. 세션 데이터는 서버 측에 저장됩니다.

사용자 상태에 대한 정보를 얻기 위해 세션을 확인하는 엔드 포인트를 추가해야합니다.

0

클라이언트에서 세션 데이터에 직접 액세스 할 수 없습니다. 서버 측에만 저장됩니다. 세션 쿠키는 실제 세션 상태가 아닌 세션 ID 만 포함합니다.

가에 대한 액세스 권한을 얻을 수있는 상태로, 당신은 몇 가지 옵션이 있습니다 기록 : 페이지를 렌더링 할 때

  1. 하기는 아마도 거기에 상태 기록 및 한 페이지에 자바 스크립트 변수를 삽입을 로그인 한 사용자의 userID. 그런 다음 클라이언트 측 JS는 변수를 점검하여 상태를 알 수 있습니다. 페이지를 렌더링하기 위해 어떤 종류의 템플릿 엔진을 사용하는 경우 간단하게 수행 할 수 있습니다. 일반적으로 페이지의 태그와 같은 일부 고급 태그에서 loggedIn 클래스 이름을 설정하는 것도 일반적입니다. 이를 통해 사용자가 로그인했는지 여부에 따라 CSS를 자동으로 조정할 수 있습니다 (예 : 로그인 버튼을 숨기려면).

  2. 세션 쿠키가 있는지 확인할 수 있습니다. 세션 쿠키가없는 경우 사용자는 로그인 할 수 없습니다. 세션 쿠키가 있다는 사실은 반드시 사용자가 로그인했음을 의미하지는 않습니다. 이는 이전 쿠키이거나 다른 쿠키의 쿠키 일 수 있습니다 사용자. 그러나 쿠키가 없으면 로그인 한 사용자가 없음을 의미합니다.

  3. 서버에 질의하고 요청할 수 있습니다. 요청하는 userID를 지정해야하며 그러면 서버는 현재 세션 쿠키가 유효한지 확인하고 해당 특정 사용자에게 속하는지 확인할 수 있습니다.

개인적으로, 나는 옵션 # 1의 변형을 가능성이 높습니다.

+0

@MoStack -이 질문에 대한 답변이 있으면 대답의 왼쪽에있는 녹색 체크 표시를 클릭하여 커뮤니티에 표시 할 수 있습니다. 스택 오버플로에 대한 올바른 절차를 따름에 대한 평판 포인트를 얻게됩니다. 질문에 아직 답이 없으면 이해를 돕기 위해 의견을 추가하십시오. – jfriend00