-
#12 토큰 생성 with jsonwebtokenNode.js/[챕터1] 2021. 6. 7. 23:59728x90
[3] 비밀번호까지 맞다면 토큰을 생성하기.
-jwt 토큰 라이브러리 다운로드
npm install jsonwebtoken --save
npm install cookie-parser --save
index.js //2.요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인. user.comparePassword(req.body.password , (err, isMatch ) => { if(!isMatch) return res.json({ loginSuccess : false, message : "비밀번호가 틀렸습니다."}) //3.비밀번호 까지 맞다면 토큰을 생성하기. user.generateToken((err,user) => { if(err) return res.status(400).send(err); // 토큰을 저장한다. 어디에 ? 쿠키, 로컬스토리지 res.cookie("x_auth",user.token) .status(200) .json({ loginSuccess : true, userId: user._id }) }) })
generateToken이란 함수를 만들었으니 모델쪽으로 가서
models/User.js const jwt = require('jsonwebtoken'); 추가하고 userSchema.methods.generateToken = function (cb){ let user = this; //jsonwebtoken을 이용해서 token을 생성하기 let token = jwt.sign(user._id.toHexString(), 'secretToken'); user.token = token; user.save(function(err, user){ if(err) return cb(err) cb(null, user) }) }
toHexString() 안하면 오류남
토큰을 생성하고 그것을 리턴한다.
index.js에서 쿠키 파서 모듈을 이용하여 x_auth라는 쿠키를 생성
728x90'Node.js > [챕터1]' 카테고리의 다른 글
#14 로그아웃 기능 (0) 2021.06.08 #13 Auth 기능 만들기 (0) 2021.06.08 #11 로그인 기능 with Bcrypt (1) (0) 2021.06.07 #10 Bcrypt로 비밀번호 암호화 하기 (0) 2021.06.07 [8]#9 비밀 설정 정보 관리 (0) 2021.04.30