제가 refesh token과 access token에 대해 구현을 하면서 보안과 관련하여 refresh token rotation 방법과 redis에 blacklist를 추가하는 방법을 보았습니다.
근데 refresh token rotation 방법은 refresh token이 한 번도 쓰여지지 않았을 때 탈취당한다면 무효화할 방법이 없고 redis를 사용하면 stateless의 장점이 사라지는 건데 왜 이것을 사용하는 건지 궁금합니다!
import { UserDto } from "../../api/users/dto/user.dto";
import jwt from "jsonwebtoken";
import { jwtRefreshSecretKey, jwtaccessSecretKey } from "../const/environment";
export function generateAccessToken(userDto: UserDto): string {
return jwt.sign(
{
accountIdx: userDto.accountIdx,
roleIdx: userDto.roleIdx,
},
jwtaccessSecretKey,
{
issuer: "choiminseo",
expiresIn: "1m",
}
);
}
export function generateRefreshToken(userDto: UserDto): string {
return jwt.sign(
{
accountIdx: userDto.accountIdx,
roleIdx: userDto.roleIdx,
},
jwtRefreshSecretKey,
{
issuer: "choiminseo",
expiresIn: "7d",
}
);
}
New contributor
최민서 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.