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

모야호님의 프로필 이미지
모야호

작성한 질문수

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

로그인 페이지 만들기

set-cookie가 제대로 동작하지 않습니다.

작성

·

1.9K

0

안녕하세요 제로초님

강의 잘 보고 있습니다.

 

로그인할 때, set-cookie가 제대로 적용되지 않아 어려움을 겪고 있습니다.  아래처럼 header에 set-cookie가 날라오긴 하는데, 느낌표가 뜨면서 제대로 저장이 되질 않습니다.

쿠키가 저장이 되지 않아 다음 스텝으로 넘어갈 수가 없습니다.  다음 swr 버전 적용을 front 디렉토리 에서 하신 것 같아 npm i 하고 실행해본 결과, 똑같은 현상이 일어나는데 어떻게 해결하면 좋을까요 ..?

로그인 로직은 swr과 관련이 없는 것 같아 강의 때 작성해주신 alecture 폴더로 돌려보았는데, 잘 동작해서 무엇이 문제인지 어떻게 고쳐야할 지 감이 오질 않습니다 .. 

로그인 쪽 코드는 다음과 같습니다.

const LogIn = () => {
const { data, error, mutate } = useSWR('http://localhost:3095/api/users', fetcher);
const [logInError, setLogInError] = useState(false);
const [email, onChangeEmail] = useInput('');
const [password, onChangePassword] = useInput('');
const onSubmit = useCallback(
(e) => {
e.preventDefault();
setLogInError(false);
axios
.post(
'http://localhost:3095/api/users/login',
{ email, password },
{
withCredentials: true,
},
)
.then((response) => {
mutate();
})
.catch((error) => {
setLogInError(error.response?.data?.statusCode === 401);
});
},
[email, password, mutate],
);

if (data === undefined) {
return <div>로딩중...</div>;
}

if (data) {
return <Redirect to="/workspace/sleact/channel/일반" />;
}

답변 1

0

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

느낌표가 뜨면 느낌표 위에 손 올려보시면 에러 내용이 나옵니다 ㅎㅎ

모야호님의 프로필 이미지
모야호
질문자

헉. 마우스를 올려보면 되는 거였군요.. ㅋㅋ

Issue 탭도 열어보았는데 이런 식으로 에러가 뜨는 것을 확인했습니다.

Proxy 서버를 사용하면 해결 되는 것인지, 백엔드 단에서 sameSite 설정을 해주면 되는지 궁금합니다.

그런데 어째서 강의 때 사용하신 alecture쪽은 실행이 잘 되는 걸까요..? 같은 서버단 코드를 사용하고 있는데 잘 되어서 궁금합니다 .. 

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

일단 저와 코드가 다르기 때문에 해당 에러가 발생한 것인데요. 백엔드 서버도 back 폴더 코드 사용하신 게 맞나요? 프론트쪽은 일부분만 제 코드로 복사해서 해서 어떤 부분이 달랐던 것인지 좁혀보세요.

모야호님의 프로필 이미지
모야호
질문자

안녕하세요 ! proxy로 해당 부분 고치고도 계속 SameSite 설정하라고 오류가 떠서 당황했는데,

크롬에서 127.0.0.1 -> localhost로 주소를 바꾸니까 제대로 잘 작동합니다! localhost랑 127.0.0.1은 루프백으로 연결되어 있다고 알고 있는데, 이렇게 다르게 동작할 수도 있는 걸까요 ? 🤔

 

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

https://stackoverflow.com/questions/12491750/localhost-doesnt-point-to-127-0-0-1

이런식으로 host 파일에 localhost에 다른 아이피가 연결되어있으면 127.0.0.1이 아닐 수 있고요. 서버에서도 localhost랑 127.0.0.1은 이름이 다르므로 같은 주소라고 생각하지 않을 수있습니다. 하나로 통일이 필요합니다.

모야호님의 프로필 이미지
모야호

작성한 질문수

질문하기