로그인 인증 중 accesstoken만 넣어봤어서 이번에는 refreshtoken을 넣어보려고 알아봤을때 우리의 db에 항상 token을 넣는건 아닌거 같아서 redis를 이용해 사용자의 token 값을 넣어주려고 처음 redis를 써봤는데 이 망할.. 30분은 붙잡고 있었따..
login = async (req, res, next) => {
try {
const { email, password } = req.body;
const user = await this.authService.login(email, password);
if (!user) {
throw error;
}
const secret = process.env.TOKEN_KEY;
if (!secret) {
return res
.status(500)
.json({ error: 'JWT secret key is missing' });
}
const accessToken = sign({ user }, secret);
const refreshToken = refresh();
redisClient.set(user.id, refreshToken);
res.status(200).send({
// client에게 토큰 모두를 반환합니다.
ok: true,
data: {
accessToken,
refreshToken,
},
});
//return res.status(200).json({ message: '로그인 성공' });
} catch (error) {
console.log(error);
next(error);
}
};
Set key to hold the string value
login = async (req, res, next) => {
...
// string으로 바꿔주기!!
redisClient.set(toString(user.id), refreshToken);
res.status(200).send({
// client에게 토큰 모두를 반환합니다.
ok: true,
data: {
accessToken,
refreshToken,
},
});
...
깔쌈쓰ㅎㅎ