이전 글에서 식별 인증에 대해 알아보았다. 식별은 본인이 누구인지 찾고 인증은 본인이 맞는지 확인을 하는 거다. 로그인 시 식별과 인증을 동시에 수행할 수도 있고 식별과 인증을 따로 수행하는 로직도 있고 여러 로그인 로직이 있을 거다, 이런 여러 종류에 로그인 로직을 만들어 보고자 한다!
- 식별 인증 동시 확인
- 비밀번호 hash 처리하지 않음
// ID와 비밀번호를 동시에 확인
$sql = "SELECT * FROM members WHERE id = '$input_id' AND pass = '$input_pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
echo "로그인 성공";
} else {
echo "아이디 또는 비밀번호가 잘못되었습니다.";
}
- 식별 인증 동시 확인
- 비밀번호 hash 처리
// 사용자가 입력한 비밀번호를 해시 처리
$hash_pass = hash('sha256', $input_pass);
// ID와 해시된 비밀번호를 동시에 확인
$sql = "SELECT * FROM members WHERE id = '$input_id' AND pass = '$hash_pass'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
echo "로그인 성공";
} else {
echo "아이디 또는 비밀번호가 잘못되었습니다.";
}
- 식별 인증 분리하여 확인
- 비밀번호 hash 처리하지 않음
// 1단계: ID 확인 (식별)
$sql_id = "SELECT * FROM members WHERE id = '$input_id'";
$res = mysqli_query($conn, $sql_id);
if ($row = mysqli_fetch_array($res)) {
// 2단계: 비밀번호 확인 (인증)
if ($row['pass'] == $input_pass) {
echo "로그인 성공";
} else {
echo "비밀번호가 잘못되었습니다.";
}
} else {
echo "아이디가 존재하지 않습니다.";
}
- 식별 인증 분리하여 확인
- 비밀번호 hash 처리
// 1단계: ID 확인 (식별)
$sql_id = "SELECT * FROM members WHERE id = '$input_id'";
$res = mysqli_query($conn, $sql_id);
if ($row = mysqli_fetch_array($res)) {
// 2단계: 비밀번호 해시 처리 후 확인 (인증)
$hash_pass = hash('sha256', $input_pass); // 입력된 비밀번호를 해시 처리
if ($row['pass'] == $hash_pass) {
echo "로그인 성공";
} else {
echo "비밀번호가 잘못되었습니다.";
}
} else {
echo "아이디가 존재하지 않습니다.";
}