본문 바로가기

Instagram Clone/GraghQL API

Passport JWT

https://github.com/wonjongRyu/bookstagram/commit/00507f5393499d0f758fc6d83bea150d4e335bb7

 

  • npm install passport passport-jwt jsonwebtoken
  • randomkeygen.com에서 문자열을 하나 가져와서 env에 JWT_SECRET으로 저장
  • authenticateJwt 함수에서는 passport.authenticate('jwt') 함수를 실행
  • 이 함수는 Strategy를 활용해서 jwt 토큰을 추출
  • 토큰이 추출되면 verifyUser를 payload와 함께 실행
  • payload는 토큰에서 해석된 id를 받아서, user를 찾아서 리턴
  • 그러면 콜백 함수가 실행되는데, 사용자가 있으면 그 사용자를 req에 추가
  • server.js 에서 context에 req를 담아준다. 

mutation과 query를 수정했을 때는 항상 npm run prisma을 돌려준 후 playground에 들어간다. 

사용법:

request secret을 하면 메일로 시크릿 코드가 날아온다. 

confirm secret을 하면 TOKEN이 생성된다. 

그다음 HTTP header에 {"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNrMWtnYTB5M2p3cDEwYjA5NjAyOThtMnQiLCJpYXQiOjE1NzEwMTg2MjN9.hckG4iBpbVGzIAJSLlr0W03lY6W8nAW2stJd9rhKdaE"}

을 넣고 함수를 실행하면 그 아이디로써 request를 보내게 된다.

toggleLike 같은 함수는 아이디가 있어야 하기 때문에 헤더에 토큰을 꼭 넣어야 한다.

 

 

'Instagram Clone > GraghQL API' 카테고리의 다른 글

ETC  (0) 2019.10.15
SearchUser, SearchPost  (0) 2019.10.15
ToggleLike and AddComment  (0) 2019.10.14
Request Secret Resolver  (0) 2019.10.11
Create Account Resolver  (0) 2019.10.11