jsonwebtoken이라는 라이브러리를 통해 node에서 jwt를 구현할 수 있다. npm i jsonwebtoken jwtMaker const jwt = require('jsonwebtoken'); const jwtMaker = (id) => { const payload = { id: id }; const secret = process.env.SECRET; const options = { expiresIn: '15m', }; const token = jwt.sign(payload, secret, options); return token; }; module.exports = jwtMaker; expiresIn을 통해 토큰의 만료시간을 설정해주었고, payload로 user_id를 기입해주었다. user..
로그인
보안 회원가입시에 pw를 받는데 이걸 DB에 그냥 저장해서는 안된다. 그래서 이를 해시하여 저장을 한다. 이러면 DB가 해킹을 당한다고 해도 원문 비밀번호를 모르므로 인증, 인가에 문제가 생길 확률이 낮아지게 된다. 하지만 해시 함수의 특성상 1이라는 값을 넣으면 항상 고정된 값이 나오므로 이걸 저장한 레인보우 테이블이라는게 존재한다. 예를들어 비밀번호가 'password'라면, 이걸 그냥 해시하게되면 항상 sdkflknut23h17이라는 값이나오게 된다. 항상 sdkflknut23h17이기 때문에 결국 sdkflknut23h17을 보면 password라고 유추해낼 수 있게 되는 것이다. salt 이런 문제를 해결하기 위해 회원가입시에 랜덤한 문자열 값인 salt를 입력으로 들어온 pw에 덧붙여서 해시하..
express 구성 routes라는 폴더를 만들고 라우터를 연결해주었다. const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const dotenv = require('dotenv'); const app = express(); dotenv.config(); app.set('port', 8080); app.use( cors({ origin: '*', }) ); app.use(morgan('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.listen(app.get('port'),..