프로그래밍/Weekly I Learned

2023.11.16 로그인 기능 에러해결

타코코딩 2023. 11. 16. 15:03

spl의 count함수를써서 1차적으로 id 체크를 한 후 compare을 사용해서 비밀번호 비교를 진행

 

//loginrepository
import { db } from "../db/database.js";

export async function getLogin(id){
    return db
    .execute(`SELECT count(pass) as cnt,any_value(pass) as pass FROM shoppy_member WHERE id = ?`,[id])
    .then((row)=>{
        return row[0][0]
    })
}
//login controller
import * as loginRepository from '../repository/loginRepository.js'
import bcryptjs from 'bcryptjs'
export async function getLogin (req,res){
const {id,pass} = req.body
const row =  await loginRepository.getLogin(id)
if(row.cnt === 1){ //cnt를 써서 0이냐 1이냐를 비교해서 id 유무체크부터 해야함
    const hashPass = row.pass 
    let login_result = await bcryptjs.compare(pass,hashPass)
  if(login_result){
console.log('정상적인 로그인 성공');
res.json(row)
  }else{
    console.log('비번틀림');
  }
}else{
console.log('없는 아이디임');
}
}