2017-12-16 1 views
0

나는 Express/Passport에서 React 클라이언트로 로그인 상태를 보내는 방법은 무엇입니까?

let loggedIn = true;

(여권이 날 줄 것이다) 내 익스프레스 서버에서

내 반작용 클라이언트에 단순한 부울 값을 보내야합니다. 더 나은 솔루션이있는 경우 템플릿 엔진을 사용하여 HTML에 포함하지 않는 것이 좋습니다.

이렇게 보이는 것이 공통점입니다.

Express에서 이것을 수행하는 표준 방법은 무엇입니까?

답변

0

Passport는 http 전용 쿠키를 사용합니다. 당신이 예 확인

-1

당신이 반응을 생각하고 있다면, 급히 표현하는 것을 잊어 버리십시오. 익스프레스 API에 대한 API 호출이 있어야 객체가 반환됩니다. 그런 다음이 코드베이스 반응 응답에 따라 반응에

하는 REDUX 세계에서

, 당신은 응답에서 paylaod와 액션 "USER/SET"를 실행할 것입니다. 상태는 감속기에서 업데이트되고 연결된 모든 구성 요소의 소품까지 전파됩니다. 말이된다?

+0

document.cookies

session(options) 

그런 다음 쿠키를 사용할 수 있습니다 사용하여 세션을 만들 때이 작업을 변경할 수 있습니다. 다른 경로이지만 같은 목표. 페이지를 렌더링하기 전에 어딘가에 쿠키가 있는지 확인하십시오. 쿠키가있는 경우 콘텐츠가있는 redux 작업을 실행하십시오! 나는 내 솔루션에서 redux에 초점을 맞춘 것을 알고 있지만 귀하의 아키텍처에서 확실한가? – frankies

+0

자, 쿠키가 "마법처럼"설정되지는 않습니다. Express는 HTTP 헤더 섹션과 같이 일부 쿠키를 보내야합니다 (예 : res.append ('Set-Cookie', 'titties-size = 42'); 일부 수신 호출이이 쿠키를 수신하는 경우 브라우저에서 자동으로 설정해야합니다. 그런 다음 [js-cookie] (https://www.npmjs.com/package/js-cookie)와 같이 쉽게 액세스 할 수 있도록 도우미 라이브러리를 사용할 수 있습니다. 가져 오기가 해결 된 후에이 코드가 실행 중이면 다음에 액세스 할 수 있어야합니다. const tittySize = Cookie.get ('titties') || '38'; – frankies

+0

Passport 태그를 확인 했습니까? 여권은 "일종의"쿠키를 설정해야합니다. HTTP 헤더 만 쿠키가 될 수도 있습니다. –

0

사용자가 로그인했음을 나타내는 쿠키가 있는지 여부를 pageload에서 확인할 수 있습니다. 그러나 세션이 만료되었거나 pageload 이후 무효화 된 경우 요청시이를 확인할 수 있습니다. 401 Unauthorized 코드가 서버에서 반환되면 클라이언트는 사용자가 로그인하지 않았으며 React에서이 코드를 처리 할 수 ​​있음을 알게됩니다.

관련 문제