회원정보수정

김형우·2022년 1월 5일
0

node.js

목록 보기
23/26

회원정보수정 - PUT

  • 회원정보수정 : localhost:3000/member/mypage?menu=1

1. 로그인 상태 확인

  • 토큰 검증을 해야함
  • 토큰에 아이디도 넣었음.
  • 토큰을 꺼내쓰면 아이디도 옴 = 아이디는 토큰으로 옴

2. member.js - 토큰검증

  • checkToken 이라는 과정에서 토큰을 검증한다.
    : router.put('/mypage', checkToken, async function(req, res, next)

  • const checkToken = require('../config/auth').checkToken;
    : checkToken../config/auth에 있는 checkToken을 가져와서 쓴다.

3. auth.js - 토큰검증

  • next();의 사용
    : req(불러오기), res(내보내기), next(넘기기)
    : DB에서 받고 next();가 들어있는 checkToken에서 토큰검증 후 req로 넘긴다.

3-1. req 받은 headers의 상태확인

  • console.log('1. req.headers =>',req.headers);

3-2. 검증 해야 할 값인 token값을 꺼낸다

  • const token = req.headers.token;
    : token으로 정의함.

4. 검증시작

1. 토큰이 있느냐

  • if(!token){ return res.send({status:888, result:'유효하지않은 토큰'}) }
    : 없다면 (!token), 888 뜨고 유효하지않은 토큰이라고 뜸

2. 토큰 decode(해독,꺼내는거,추출)

  • const user = jwt.verify(token, self.securityKey);
    =================(토큰 , 암호키)
  • if(typeof user.uid === 'undefined'){ return res.send({status:888, result:'유효하지않은 토큰'}) }
    : 해독한 토큰에 uid(user.uid)가 없으면(undefined), 888 뜨고 유효하지않은 토큰이라고 뜸

3. 추출 완료

  • 토큰에서 추출한 id
    : console.log('2. 토큰에서 추출한 id =>', user.uid);

  • auth.js의 req.body
    : console.log('2-1. auth.js의 req.body =>',req.body);

4. 추출한 uid 첨부

  • req.body.uid = user.uid;
    : 수동으로 body에 포함(uage, uemail, uid)

5. next();

  • member.js로 무사히 넘김

6. member.js 확인

  • member.js로 무사히 넘어왔음
    : console.log('3. member.js로 무사히 넘어왔음 =>', req.body);

전체 로그

1. auth.js => req.headers => {
  token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJheiIsImlhdCI6MTY0MTM1MTIzMiwiZXhwIjoxNjQxMzgzNjMyLCJpc3MiOiJjb3JwMDEifQ.wtaBllh3yOgZKCJKkccHUBF5xCR_smjsLmwUPe9g8Fw',
  'content-type': 'application/json',
  'user-agent': 'PostmanRuntime/7.28.4',
  accept: '*/*',
  'cache-control': 'no-cache',
  'postman-token': '5a204233-539c-4478-a563-741ddc7d1027',
  host: 'localhost:3000',
  'accept-encoding': 'gzip, deflate, br',
  connection: 'keep-alive',
  'content-length': '31'
}

2. auth.js => token = req.headers.token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJheiIsImlhdCI6MTY0MTM1MTIzMiwiZXhwIjoxNjQxMzgzNjMyLCJpc3MiOiJjb3JwMDEifQ.wtaBllh3yOgZKCJKkccHUBF5xCR_smjsLmwUPe9g8Fw

3. auth.js => 토큰에서 추출한 id => az

4. auth.js => req.body => { uage: 13, uemail: 'b@b.com' }

-----------------------------------------------------

5. member.js => 무사히 넘어왔음 req.body => { uage: 13, uemail: 'b@b.com', uid: 'az' }
profile
The best

0개의 댓글