inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

다른 서비스에서 호출하기

10.4 토큰테스트에는 표시되지만 api 서버에는 유효하지 않다고 나와요.

564

ysm6514

작성한 질문수 6

0

토큰테스트 화면1.png토큰테스트 화면2.png화면 캡처 2023-08-09 232840.png

 

질문1)

4000/test에서는 토큰이 표시되지만,

8002/v1/test 에서는 유효하지 않은 토큰으로 뜨는 이유가 무엇일까요?

로그에서는 401코드가 뜨다가 4000/test 접속 후 새로고침을 하면 200 코드가 로그에 다시 뜹니다.

 

api 코딩 내용 첨부합니다.

app.js

appjs1.pngappjs2.pngcontrollers/v1

controlv1js2.pngmiddleware/v1

middlev1.png

routes/v1

v1.png

node.js mysql mongodb express typescript socket.io jwt

답변 2

1

제로초(조현영)

8002 주소는 브라우저로 접근하는 주소가 아닙니다. 토큰을 헤더에 안 넣으셨으니 당연히 유효하지 않은 토큰이라고 나올 수밖에 없습니다.

0

ysm6514

4000/test 에 접속하면 8002(서버)에 요청을 하는 것이고 토큰이 발급 되고,

8002 콘솔에서는 v1/token v1/test에 200,

만료되면 419가 뜨는 것으로 이해했습니다.

 

부족한 부분은 조금 더 공부해보겠습니다. 답변 감사합니다.

 

 

0

조성진/컴퓨터공학부(컴퓨터공학전공

브라우저에다 localhost:8002/v1/test 를 입력하시면 안됩니다.

'localhost:8002/v1/test' 주소는 nodecat 서버, 즉 클라이언트 측에서 이미 토큰을 발급받은 상태에서, 토큰의 유효성 검사를 하기 위한 주소입니다.

// /v1/test 
router.get('/test', verifyToken, tokenTest); 

이 코드에서도 알 수 있듯이 'localhost:8002/v1/test' 주소로 Get 요청을 보내게 되면 verifyToken 미들웨어로 가게 되는데, 그곳에서 가장 먼저 하는 일은 req.headers.authorization 안에 JWT를 검증하는 것입니다.

브라우저에다 'localhost:8002/v1/test' 를 바로 입력할 때 우리는 req.headers.authorization 안에 토큰따위 담아 보낸 적이 없으니, 바로 밑에 있는 에러처리 코드로 넘어가게 되는 것입니다. (요부분)

return res.status(401).json({
            code: 401,
            message: '유효하지 않은 토큰입니다.'
        })

그래서 유효하지 않은 토큰이라고 뜨게 됩니다.

깃헙 질문

0

82

2

강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.

0

76

1

aws - lightsail 이용 관련

0

58

1

4강 http 서버 만들때 ESM방식으로 해도 될까요?

0

81

2

모듈 사용 시 단점이 있나요?

0

81

1

node.js 버전 및 typescript 적용 문의

0

95

2

12.7. 방장기능(강퇴) 질문드립니다.

0

80

2

12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요

0

69

1

12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.

0

75

2

12.7.1스스로 해보기 질문되나요

0

95

3

시퀄라이즈 실습하기 질문드립니다.

0

196

9

<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.

0

97

2

크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.

0

113

2

구매 결제관련 질문입니다 !

0

123

1

다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제

0

133

2

node 설치 방법이 전혀다르게 바뀐것 같습니다.

0

152

2

12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류

0

122

2

무료/프리미엄 동시 소유 시 질문

0

117

1

비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?

0

135

2

10강 cors에러 localhost:4000으로 접속했을때 에러

1

159

2

webstorm 해결할 수 없는 변수 문제

0

155

2

혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?

0

149

2

LightSail 실행 중 오류 질문드립니다!

0

204

2

RedisStore 사용법 질문

0

133

2