Cookie, 403
`npm i cookie-parser`
if (loginUser && loginUser.password == password) {
const token = jwt.sign(
{ email: loginUser.email, name: loginUser.name },
process.env.PRIVATE_KEY
);
res.cookie("token", token);
body가 아닌, cookies에서 토큰이 전달되는 것을 확인할 수 있다.
.status(403) : 인증해줄 수 없다 > 로그인 실패했을때!
쿠키 설정
HttpOnly, Secure
HTTPS 환경에서 사용하자!
암호화 해서 http 전송하기.
*HttpOnly : XSS 공격(프론트 js 코드 공격) 프론트엔드가 아니라, api 호출만 허락! > true
res.cookie("token", token, { httpOnly: true });
JWT 유효기간
.sign 메서드 - 페이로드, 암호키, 옵션
const token = jwt.sign(
{ email: loginUser.email, name: loginUser.name },
process.env.PRIVATE_KEY,
{ expiresIn: "5m", issuer: "dah" }
);
마우스 호버를 하면 iat 발급 시간과, exp 발급폐기 시간이 나온다.,
iss는 토큰을 관리하는? 발급하는 사람을 말한다.
다음은 플젝에서 실제 JWT 로그인을 구현해 볼 것이다. + 맨 처음 설계부터!
☑️ 배운 점
JWT가 백엔드에서 어떠한 설정값을 가지는지 알았고, 쿠키로 감싸서 프론트에서 처리한다는 것도 알았다.
이전에 `Bearer` 로 토큰을 전달한다는 코드를 사용했었는데, 이부분을 백엔드에서 어떻게 처리하는지, 사용법을 더 공부할 것이다.