Programming/Node.js

express, jwt 사용자 인증 기능 구현 (1)

알 수 없는 사용자 2021. 7. 20. 11:04

안녕하세요. 자비스 입니다.

지난시간에 이어서 node.js express 기반의 api서버에 사용자 인증 기능을 구현해보겠습니다.

 

jsonwebtoken 설치

$ npm install jsonwebtoken --save

 

secret key 생성

/config/jwt.js 파일 생성

let jwtObj = {};
jwtObj.secret = "jarvis"
module.exports = jwtObj

 

토큰 발급

/routes/accounts.js 파일 생성

var express = require('express');
var router = express.Router();

var { User } = require('../models/index');
let jwt = require("jsonwebtoken");
let secretObj = require("../config/jwt");

router.post('/signin', function(req, res, next) {
    let token = jwt.sign({
        email: req.body.email//payload
    },
    secretObj.secret,//키
    {
        expiresIn: '60m'//유효시간
    })

    User.findOne({
        where: {
            useremail: req.body.email
        }
    })
    .then( user => {
        if (user.password === req.body.password) {
            res.json({
                token: token
            })
        }
    })
});

module.exports = router;

 

설치부터 토큰 발급까지 간단합니다.

다음편에선 미들웨어에서 토큰 검증하고, 유효하지 않는 토큰에 대해 처리하는 기능을 이어서 진행하도록 하겠습니다.

 

현재까지 작업한 소스코드는 여기 에서 확인 가능합니다