-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
getServerSideProps 쿠키 이슈 관련해서 질문드립니다! 도와주세요ㅠ
22.06.30 01:14 작성 조회수 643
0
안녕하세요, 제로초님 강의 잘 들었습니다. 강의를 듣고 혼자서 프로젝트를 진행하는데 너무 막히는점이 있어서 질문드립니다.
마이페이지에서 유저 정보를 불러오는 작업을 하고 있습니다. 토큰을 받아서 쿠키에 저장하여 사용하고 있는데.. 배포시에 저 말고 다른 사람도 저의 토큰으로 요청을 보내는 모습이 발견되었는데 해결을 못하고 있어요ㅠ 로초님 강의 후반부에서 보긴봤었는데 상황이 약간 다른거 같아서 질문드려요ㅠ
saveCookies는 쿠키를 받아서 디스패치하여 스토어에 저장하는 함수이고
createCustomHeader는 Authorization : {`Bearer ${token}`}을 리턴하는 함수입니다.
export const getServerSideProps = wrapper.getServerSideProps(
(store) => async (context) => {
saveCookies(store, context);
const rootState: RootState = store.getState();
const user_id = rootState.loginState.user_id;
axiosInstance.interceptors.request.use(
async function (config) {
try {
config.headers = null;
if (context.req && context.req.headers.cookie) {
const allCookies = cookies(context);
const accessToken = allCookies.accessToken;
config.headers = createCustomHeader(accessToken);
}
return config;
} catch (error) {
console.log(error);
}
},
function (error) {
return Promise.reject(error);
},
);
store.dispatch(getUserInfoInMypageRequest(user_id));
store.dispatch(END);
await store.sagaTask.toPromise();
return {
props: {},
};
},
);
답변을 작성해보세요.
0
조현영
지식공유자2022.06.30
제 문제랑 비슷한 것 같은데요. 마찬가지로 쿠키를 초기화하는 코드를 강제로 넣어주셔야할 것 같습니다. 제가 axios.defaults.headers.cookie = '' 했듯요.
으하하
질문자2022.06.30
답변 감사드려요 그렇게 해봤는데 잘안되더라구요 혹시 백엔드에서 토큰을 받을때 백엔드에서 set-cookie로 주는게 아니라 response의 data로 받아서 클라이언트에서 쿠키를 set 해주는데 이 방식이 문제인걸까요???
으하하
질문자2022.06.30
react-cookie 라이브러리를 사용했구요 로그인시에 백엔드서버에서 헤더가 아닌 body에 data로 토큰을 넘겨주는데 그걸 받아서 프론트에서 cookie.set('accessToken', response.data)로 저장해요요
으하하
질문자2022.07.01
현재 const axiosinstance = axios.create() 이런식으로 사용하는데 axios.defaults.headers.cookie = '1231' 이렇게 하면 인스턴스에도 영향이 갈까요!??
답변 1