
일단 오늘은 백엔드 API를 마무리했다. API 개수는 많지 않지만, JWT 토큰과 데이터 암호화 부분에서 시간이 조금 걸렸고, API 제작보다는 API를 주고받는 부분에서 cors 에러와 같은 부분을 해결하는데에 시간이 더 걸린 것 같다.
기존 방식은 인증번호를 DB에 저장하고, 사용자의 메일로 인증번호를 보내서 사용자가 입력하는 인증번호와 DB에 저장된 인증번호를 비교하는 방식이었다. 그런데 이 경우에는 DB에서 인증번호를 관리해야하고, 더이상 필요없어진 인증번호 데이터를 삭제도 해줘야해서 번거로운 부분이 있었다. 그래서 JWT 토큰을 발급해서 URL 형식으로 링크를 보내서 링크를 클릭하면 백엔드의 검증 API를 호출하도록 변경했다. 이렇게 구현하면 DB에서 인증 관련 데이터를 보관할 필요가 없다.
const mailOptions = {
from: process.env.GMAIL_EMAIL, // 작성자
to: email, // 수신자
subject: "APIKeyPER Sign Up Verification Code", // 메일 제목
html: `<p>Please click the following link to verify your email address:</p>
<p> <a href="${process.env.SERVER_DOMAIN}/api/auth/sign-up/verification/email/${verificationToken}">Verify email</a> </p>`,
};


이정도인 것 같다.
내일은 백엔드 API의 req, res 정보를 간단하게 정리해서 프론트엔드 작업에 들어가사 사용하기 편한 형태로 정리한 뒤에 프론트 작업을 시작해야겠다.