1. JWT(JSON Web Token)


JSON 포맷으로 사용자에 대한 속성을 저장하는 웹 토큰

특징

2. JWT의 종류


  1. Access Token Access token은 보호된 정보들에 접근할 수 있는 권한부여에 사용, 클라이언트가 처음 인증을 받게 될 때, access,refresh token 두 가지를 다 받지만, 실제로 권한을 얻는 데 사용하는 토큰은 access token

e.g. 토큰을 생성하고 생성한 토큰을 클라이언트에게 보내기

// server

const jwt = require("jsonwebtoken");

const userinfo = await Users.findOne({
  where : {
    userId : 클라이언트에서 보낸 아이디
    password : 클라이언트에서 보낸 비밀번호
  }
});

let payload = {
  id : ...
}

let accesstoken = jwt.sign(payload,process.env.ACCESS_SECRET);
// jwt 객체의 sign을 사용해서 토큰을 생성(발급)
// jwt.sign(payload, secret or privateKey ,[options,callback])

res.status(200).send({token : {accesstoken : accesstoken}})
// 클라이언트에서 jwt 토큰을 가질 수 있게됨
// client

axios.post("server",{Id,Password},{withCredentials : true}).then((result) => {
  // server에서 생성해서 보낸 accesstoken을 받아올 수 있다
})

ex) 클라이언트가 토큰으로 유저정보 받아오기

// client
// 가지고 온 토큰을 가지고서 유저정보를 받아온다

// 서버에 토큰을 보내고
axios.get("server",{headers : {Authorization : `Bearer ${token}`}}).then((result) => {
  // 유저정보를 받아온다 
})