inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 끝장내기 - 실무에 필요한 모든 것

인터셉터를 이용한 HTTP 헤더 설정

Option 관련 부분 질문입니다.

710

JAESIK PHEE

작성한 질문수 2

1

Authorization에 들어갈 token은 login에 대한 response으로 들어오는 것 같은데 맞는지요?

강사님이 예시로 보여주실 때, 로그아웃 상태였는데 로그인 요청을 할 때 Authrization이 들어갔는데요. 제가 작성한 소스에서는 들어가지 않고 있어서요!

강사님의 요청과 제 요청에서 다른 부분은 Option?? Login 요청할 때, 강사님은 2개의 Login이 한번에 있고 밑에부분을 보여주셨는데요. 그 부분이 다른 것 같아요.

제가 Authorization이 없는 이유는 Option 때문인가요?

또 혹시 Option은 이전의 강의에서 설명해 주셨었나요?

회원 가입 API 호출과 주의 사항에서 Option에 관한 언급이 잠깐 있었는데, 혹시 제가 강의에서 놓쳤나 해서 질문 드립니다 :)

javascript vuex vuejs

답변 4

2

kmh

여기서 드리는 질문은 로그인은 어차피 인증된 유저가 접근한게 아니고 인증해야할 유저가 접근해ㅔ야될 페이지인것 같고 api 또한 아직은 Authorization 인증 토큰을 받은 유저가 아닌데 로그인 시에 넘어갔다! 라는게 의문점이신것 같아요. 로그인 타이밍에 인증토큰을 요구한다는게 좀 어색하기도 하구요. 1번은 그부분을 말씀하신것 같아요. 

실제로 강의에서 request intercept의 헤더에 Authorization을 로그인 하기 전에 들어간 것 같네요.

-> 강의를 자세히 확인해보니 clearUsername이라는 mutations는 username만 '' 클리어하는 기능이고, 이전 로그인시에 token을 담아뒀는데 새로고침이 아니라 로그아웃 하였고 state에 남아있는 token이 이전 로그인 계정의 토큰이었고(어차피 같은 a@a.com 이긴하지만) 이것이 state에 아직남아있어 api request를 할때 헤더에 실린것 같아요.

실제 로그인 api는 Authorization이 필요없는 것 아닌가요??

1

JAESIK PHEE

답글 감사합니다.

그런데 제가 질문을 애매하게 한 것 같아 추가로 다시 문의드립니다.

1. Login에 대한 응답에 들어있는 token인데, 강의 영상에는 request의 Authorization에 token이 들어있습니다.

2. 넵 

3. Options는 api request를 할 때, HTTP OPTIONS에 대한 질문이었습니다.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS

4. 궁극적으로 궁금한 부분은 아래와 같습니다.

 a. login request 요청을 함

 b. request 요청에 authorization 내부에 response의 token이 들어있음

 c. 어떻게 해당 token이 들어 있는지?

답변 감사합니다 :)

정말 많이 배우고 있습니다 ^^

0

캡틴판교

엇 Jaesik님 바로 답변 주셨군요. 구체적인 재질문 감사드립니다 :) 바로 답변 드릴게요.

1. request의 Authorization에 토큰이 실리는 것은 인터셉터에 정의한 코드 때문에 그렇습니다. 제가 질문을 잘 이해 못하고 있는데 이거 여쭤보시는 게 맞나요..? :)

3. 좋은 질문입니다. CORS의 동작 방식을 이해하셔야 왜 OPTIONS라는 요청이 먼저 날아가는지 이해하실 수 있는데요. 아래 링크 넣어드릴테니 한번 문서 쭉 살펴보세요 ㅎㅎ

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS

4. 수업에서 구현하는 로직 흐름을 짧게 한번 정리해드릴게요.

a) 로그인 API 요청 및 성공

b) 로그인 API의 응답으로 받은 토큰을 스토어에 저장

c) 인터셉터에 정의된 코드가 매 API 요청마다 스토어에서 토큰을 꺼내 Authorization 속성에 연결

위 흐름을 보신 상태에서 이해 안가는 부분부터 다시 한번 영상을 살펴보시겠어요?

강의에 대해서 좋은 평가 해주셔서 감사드리고, 제가 답변 드리기 편하게 질문 잘 정리해주셔서 감사드립니다 :)

남은 수업도 재밌게 들으세요!

0

캡틴판교

안녕하세요 JAESIK님, 질문 주신 내용 포인트로 짚어서 답변 드릴게요 :)

1. 수업에서 사용하는 토큰은 말씀하신 것처럼 로그인의 응답에 들어있는 토큰입니다.

2. 로그인 API 응답에서 취득한 토큰은 로그인 이후에 호출할 API를 인증할 때만 필요합니다. 수업 후반부쪽 가보시면 제가 로그인 하기 전 API인, LoginUser()와 signupUser() 등에는 인터셉터를 연결하지 않을거에요 :)

3. Options에 대한 질문은 참 좋은 질문이네요..! 생각해보니 제가 이번 수업에서 인스턴스를 생성할 때의 옵션에 대해서 자세히 설명하지 않았던 것 같은데 일반적으로 인스턴스에 공통으로 적용될 axios 설정 값들을 options 인자로 넘기시면 됩니다 ㅎㅎ axios 설정 값들에 대한 옵션은 다음 링크를 참고해보시면 좋을 것 같아요. https://github.com/axios/axios#request-config

좋은 질문들 남겨주셔서 감사합니다. 강의 수강해주셔서 감사드려요 :)



node 10버전 사용

0

64

1

강의에 대해 질문 드립니다.

0

61

1

vue CLI 대신 vite를 사용해도

1

140

2

질문삭제

0

149

2

강사님 코드로 진행할 경우 console.log( config); 도 안찍혔어요. instance 를 생성해서 공통으로 사용하셨는데 loginUser 에만 커스텀한 instance를 넣으니 콘솔에 컨피그 객체가 찍혀요

0

92

1

로그인 에러발생만하면 네트워크 커넥션 에러 발생 해결

0

117

1

rndrmagkqslek.

0

73

1

계속 따라하다가 안돼서 bash에 연결할떄 안되더라구요

0

104

1

axios 에러가 뜹니다.

1

237

2

vue3로 진행하시면서 router에서 '*' 적용이 안되시는 분들

2

312

1

vue 관련 다른 강의 출시예정이없으신지 궁금합니다!

1

154

1

AppHeader.vue에 vue 디폴트 만들에 Delete `␍` 오류나면

1

195

1

vue3로 따라오시다가 import axios 에러 뜨시는 분들

2

445

2

$router 를 이용한 메인 페이지로 이동

1

290

1

혹시 node.js 10.24 버전으로 해도 상관없나요?

2

461

2

에러 경로가 LoginForm.vue 43번째줄 말고 다른 경로로 출력됩니다.

1

299

2

pinia 사용할려고 하는데 에러가 나옵니다.

1

486

2

swagger ui의 post/posts에 글 기록하려고 하면 unauthorized 에러가 납니다..

1

1104

2

safari 개발자 도구에 대한 질문입니다

1

568

2

스웨거에 글 등록시 401 에러가 나와요 ㅠ

1

722

2

이 에러 때문에 진행이 안되네요 ㅠ

1

675

1

windows .nvmrc nvm use 실행 오류

1

1547

2

강사님 최신화가 필요해보입니다.

2

960

2

npm i 에러

1

613

1