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

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

CORS 실전 적용하기

axios withCredentials

작성

·

833

0

axios도 withCredentials 옵션이 있던데 이건 설정 안하는 건가요?

답변 1

0

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

withCredentials는 CORS 적용 후 추가적으로 쿠키 전송을 하고 싶을 때 쓰는 옵션입니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

Credentials라 해서 같은건줄 알았는데 아닌가보네요?

그럼 cors 모듈에서 Credentials옵션도 쿠키 공유 허락 인데

ajax 요청하는거랑 무슨 차이에요?

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

cors의 credentials랑 매칭되는 겁니다. 프론트에서도 설정해야하고 백엔드에서도 설정해야 합니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

현재 노드 예제에선 쿠키 대신 세션과 DB를 이용한 인증방식이라 소개를 안한거라 보면 되죠? 그럼

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

토큰 인증방식이라서 쿠키를 쓰지 않아서 withCredentials 옵션이 필요 없습니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

네 그 토큰을 세션에다 저장해놓고 쓰잖아요? 다른데 보면 쿠키에도 많이 넣고 보내주던데,

실무에선 토큰 발급받으면 어디에 많이 저장하는편인가요?

 

쿠키,  세센, 로컬스토리지

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

프론트에서는 로컬스토리지에 넣는게 제일 효율적입니다. xss 공격만 대비하면 됩니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

답변 감사합니다 제로초님! 제가 이해한게 맞는지 검증해주시면 감사하겠습니다.

1. 보통 서버단에서만 credentials 설정해주면 문제없다.

2. 다만 쿠키 정보가 필요할경우는 반드시 클라이어트단에서도 credentials옵션을 줘야 쿠키 전송이 된다.

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

단순 CORS에서는 서버단에서도 credentials 필요 없습니다. 쿠키 정보가 필요한 경우 프론트랑 서버단에서 credentials를 동시에 설정하는 겁니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

질문하기