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

Daniel Hwang님의 프로필 이미지

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

스스로 해보기2(무료/유료에 따라 사용량 차등 제한)

스스로 해보기 하는 중 질문입니다.

작성

·

177

0

1. 이상하게, 프론트에서 요청보내면 req.get('origin')의 포트가 8003으로 잘 나오는데, 

프론트에서 요청 말고, url(주소창)로 요청을 보내면 (ex. '/mypost', 'search/:hashtag') getorigin 하면 undefined 나오고 req.headers.host 하면 포트가 8002가 나옵니다ㅠ 

작성한 코드는 첨부한 것과 같습니다.

그래서 call 쪽에서 axios.get 요청 보낼때, headers 객체 안에 host: 'localhost:8003' 이렇게 하니까 api 쪽에서 req.headers.host 했을때 8003으로 꺼내져서 그렇게 하긴 했습니다ㅠ

2. 그리구 쌤 코드를 따라 하다 보니까, nodebird-api 쪽 서버의 '/token' 라우터에 limiter가 있으면 call 쪽에서 첨에 토큰이 없는 경우 발급해주고 그다음 필요한 요청에 대해 응답해주어 이런 경우 2번이 연달아 요청이 발생해서 해당 토큰 발급해주는 라우터에는 limiter가 없는게 좀 더 맞는거 같은데 어떻게 생각하세요~?(해당 상황은 1분에 1번 제한일 경우에.) limiter가 있을 경우 토큰이 없는 첨 상황에는 토큰 발급하고 바로 실제 필요 요청이 오는데 그러면 토큰 발급하고 1분을 기다리게 되서요 ㅎ;

답변 해주시면 감사드립니다 ㅎ

답변 2

1

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

1. 프론트에서는 브라우저가 Origin을 넣어주지만 서버에서 보낼 때는 origin을 넣어주지 않아 직접 헤더에 넣어주어야 합니다.

2. 토큰 발급 라우터에는 빼는 게 맞는 것 같습니다. 감사합니다.

0

Daniel Hwang님의 프로필 이미지
Daniel Hwang
질문자

감사합니다!ㅎ