* 서비스
async signIn(authCredentialDto : AuthCredentialsDto) {
const {username, password} = authCredentialDto;
const user = await this.userRepository.findOneBy({username});
//username으로 user 찾고
//입력받은 비밀번호랑 저장된 비밀번호랑 비교
if(user && (await bcrypt.compare(password, user.password))){
return 'login success'
}
else{
throw new UnauthorizedException('login failed');
}
}
📌 bcrypt.compare
DB에 실제 비밀번호가 아니라 해시값이 저장되어 있다. 그렇기 때문에 로그인할 때 실제 비밀번호가 아니라 해시값으로 비교를 해서 비밀번호 일치 여부를 따져봐야한다.
이때 bcrypt.compare를 사용해 비교하면 된다!
* bcrypt.compare salt issue | salt 쳤는데 비교가능? ㅇㅇ
* 컨트롤러
@Post('/signin')
signIn(@Body(ValidationPipe) authCredentialsDto : AuthCredentialsDto){
return this.authService.signIn(authCredentialsDto);
}
'JS > Nest.js' 카테고리의 다른 글
[Nest JS] Passport , jwt => 토큰인증후 유저정보 가져오기 / @UseGuard 미들웨어 (0) | 2024.08.18 |
---|---|
[Nest JS] JWT => accessToken 발급 (0) | 2024.08.18 |
[Nest JS] 비밀번호 암호화 구현 (0) | 2024.08.18 |
[Nest JS] id 중복검사 구현 (0) | 2024.08.18 |
[Nest JS] 유효성체크 with class-validator, 파이프 (0) | 2024.08.18 |