인프런 커뮤니티 질문&답변

김노아님의 프로필 이미지
김노아

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

워크스페이스 만들기 + 로그아웃하기

swr 질문

작성

·

221

0

안녕하세요 제로초님

좋은 강의 잘 듣고 있습니다! 질문이 있는데요

로그인 성공 시 서버로부터 받은 세션으로 사용자 정보를 swr로 받고 싶습니다.  여기서 질문이 있습니다

 

1. LogIn 컴포넌트에서 로그인을 성공하게 되면 revalidated가 불리면서 세션에 사용자 정보가 저장되는게 맞나요?

2. 제가 현재 구현하고 있는 서버가 Spring Boot + Spring Security 인데 다중 사용자이므로 email을 req param으로 전달하고 정보를 리턴받습니다. 이럴 경우에 workspace 레이아웃에서는 email 정보로 swr 요청 하는 방법을 .. 모르겠습니다ㅠ

3. 1번의 질문이 참이라면 세션의 사용자 정보를 가져다가 2번의 param으로 사용하여 swr 요청할 수 있을거 같은데 가능할까요..?

 

답변 주시면 감사하겠습니다!

답변 2

0

김노아님의 프로필 이미지
김노아
질문자

저 알려주신대로 하다 잘 안되서 질문 드립니다

fetchByEmail() 에서 email이 안넘어가는것 같습니다 

도움 주시면 감사하겠습니다ㅠㅠ

 

김노아님의 프로필 이미지
김노아
질문자

김노아님의 프로필 이미지
김노아
질문자

로그인 성공 후 revalidate()가 불려 swr의 fetchByEmail까지는 요청이 가는 것 같습니다.

하지만 email값이 들어가지않는 상태입니다

김노아님의 프로필 이미지
김노아
질문자

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

답변을 여기에 다시면 알림이 저한테 안 갑니다. 자신의 질문에 자신이 답변한 셈이 됩니다. 댓글로만 달아주세요.

email이 처음에는 ''라 그렇습니다. key를 email ? 'getUserByEmail' : null

로 바꾸세요.

0

김노아님의 프로필 이미지
김노아
질문자

질문이 좀 부족한거 같아서.. 추가로 말씀드려보자면요..
제가 원하는 것은 Login시 얻은 email을 가지고 swr 요청시 해당 키값으로 swr요청하는 컴포넌트들이 캐시를 공유하기를 원하는데 다른 컴포넌트에서는 email값을 모릅니다.. 어떻게 해야할지.. 감이 안잡힙니다ㅠ

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

예를 들어 const {data} = useSWR('getUserByEmail', () => fetchByEmail(email)); 이런 식으로 만드셔서 여러 컴포넌트에 이걸 넣어두시면 됩니다. 그러면 한 군데서 getUserByEmail 키로 값을 가져오면 다른 곳에서는 자동으로 이 값이 들어있게 됩니다.

김노아님의 프로필 이미지
김노아
질문자

아아 신기하네요..! 제가 하고싶은 구현이였어요

큰도움 받았습니다 정말 감사합니다!!

김노아님의 프로필 이미지
김노아

작성한 질문수

질문하기