과제를 제출하고 받은 피드백을 토대로 코드를 수정하던 중 기존에 잘 되던 코드가 갑자기 안되는 에러가 있었다.
오늘의 오류는 대략 이렇다...
1. 우선 jwt.sign 함수를 모듈화 하라는 피드백을 받고 이런식으로 따로 파일로 빼주었다.
import jwt from "jsonwebtoken";
import dotenv from "dotenv";
dotenv.config();
export default function (n) {
return jwt.sign({ userId: user.userId }, process.env.SESSION_SECRET_KEY, {
expiresIn: n,
});
}
2. jwt.sign을 쓰는 로그인 api도 수정했다.
import JWT from "../utils/jwt.sign.js";
router.post("/sign-in", async (req, res, next) => {
try {
const { email, password } = req.body;
const user = await prisma.users.findFirst({ where: { email } });
if (!user)
//일치하는 users가 존재하지 않음
return res.status(401).json({ message: "존재하지 않는 이메일입니다." });
if (!(await bcrypt.compare(password, user.password)))
//users.password값을 비크립트로 비교했는데 비밀번호 일치하지않음
return res.status(401).json({ message: "비밀번호가 일치하지 않습니다." });
//jwt는 header/payload/sign으로 이루어져있음
const accessToken = JWT("12h");
const refreshToken = JWT("7d");
... 이하 생략
3. 룰루랄라 수정했으니 실행시켜본다. 작동이 잘 되네?
4. 그런데 auth.middleware를 거쳐야하는(로그인인증과정) 내 게시글 작성, 내 게시글 조회 api 는 안되네??
처음에는 auth.middleware 파일이 잘못된줄 알고 계속 노려보았다.. 왜인지는 모르겠지만 cookie로 받은 authorization 값이 계속 undifined 가 떴다. cookie manager를 켜도 쿠키가 버젓이 존재하는데 왜 없다는거지?..
팀원이 비슷한 오류를 겪는걸 본적 있는데, 그때는 cookie-parser 라이브러리 설치를 안해서 생긴 오류였다. 내 경우 app.js 파일에 이미 있는데 괜히 아무데나 cookie-parser를 갖다붙여보았다. (당연히 해결안됨)
사실은...
1. 처음부터 jwt.sign 모듈을 잘못 만듬. 이 코드의 user는 대체 어디서 가져오는것인가? (컴퓨터둥절)
2. api주소가 잘못 됨(이전에 pm2로 배포한 서버에 요청 보내는중..)
디버깅 과정에서도 수많은 오류가 발생해 나를 해답에서 더욱 멀게 만들었다는 결론이다.
'프로젝트' 카테고리의 다른 글
우리 동네 동아리(이하 우동) 프로젝트 (0) | 2024.02.07 |
---|---|
카카오 로그인/로그아웃 기능 개발(REST API) (0) | 2024.02.06 |
AWS EC2 인스턴스에 프로젝트 배포하기, PM2 사용하기 (0) | 2024.02.02 |
API 명세서, ERD 작성하기 (0) | 2024.02.02 |
Err#1 - PrismaClientValidationError (0) | 2024.02.01 |