'feature/login' branch의
app.js 전체코드
[로그인 코드 분석]
app.post('/login', async (req, res) => {
try {
const email = req.body.email;
const password = req.body.password;
key error
if (!email || !password) {
const error = new Error('필수 입력란을 모두 작성해 주세요');
error.statusCode = 400;
throw error;
}
// key error 할 수 있지만, 프론트엔드에게 백엔드의 의도를 '친절하게' 알려주기 위해
email 이 DB에 있는지 (existing user인지)
const existingUser = await myDataSource.query(`
SELECT id, email, password FROM users WHERE email='${email}';
`);
console.log('existing user:', existingUser);
if (existingUser.length === 0) {
const error = new Error('일치하는 회원정보가 없습니다');
error.statusCode = 400;
throw error;
}
해당 email의 해쉬된 패스워드가 DB에 있는가
const hashPw = await bcrypt.compare(password, existingUser[0].password);
console.log(hashPw);
if (!hashPw) {
const error = new Error('일치하는 회원정보가 없습니다');
error.statusCode = 400;
error.code = 'passwordError';
throw error;
}
// 보안을 위해 비밀번호, 패스워드 중 오류 알려주지 않기로
로그인 성공 시 토큰 발급
const token = jwt.sign({ id: existingUser[0].id }, process.env.TYPEORM_JWT);
return res.status(200).json({
message: '로그인 성공하였습니다',
accessToken: token,
});
} catch (error) {
console.log(error);
}
});v
const server = http.createServer(app);
const start = async () => {
try {
server.listen(8000, () => console.log(`Server is listening on 8000`));
} catch (err) {
console.error(err);
}
};
myDataSource.initialize().then(() => {
console.log('Data Source has been initialized!');
});
start();
이후, pull request 과정
git add.
git commit -m "로그인"
git push origin feature/login으로 일단은 전체 코드 업로드 했다.
이후 수정, commit 후 layered pattern으로 나누기 위해
이후 깃허브에 들어가면
이렇게 뜬다.
'Wecode - Project 2 (부트캠프) > Project 2 과정' 카테고리의 다른 글
Project 2 - 5일 차 (9) : 내가 push 한 '로그인 함수' : pull request 팀원 리뷰 + 수정 (0) | 2023.09.22 |
---|---|
Project 2- 5일차 (8): 로그인 pull request template.md (0) | 2023.09.22 |
Project 2 - 5일 차 (6) : 내가 push 한 회원가입 함수 : pull request 팀원 리뷰 + 수정본 ** 해야 함 (0) | 2023.09.22 |
Project 2 - 5일 차: 깃허브 [local 최신화, git pull origin 하며] 깃허브에 대해 복습, 새롭게 알게 된 사실 (0) | 2023.09.22 |
Project 2- 5일차 (3): 회원가입 pull request template.md (0) | 2023.09.22 |