최초 작성일 : 2023-09-10 | 수정일 : 2023-09-10 | 조회수 : 869 |
PHP에서 30분 뒤에 자동으로 사용자를 로그아웃하는 방법에 대해 알아보자. 이 기능은 보안 측면에서 매우 중요하며, 웹 애플리케이션의 사용자 경험(UX)를 향상시킬 수 있다.
이 포스트에서는 PHP의 $_SESSION
을 활용하여 이 기능을 구현하는 방법을 알아보자.
1. 기본 코드 작성
먼저 로그인 할 때의 코드 일부이다.
phpsession_start();
if ($isLoginSuccess) {
// 로그인 성공 여부를 판단하는 조건문이다.
$_SESSION['loggedin'] = true;
$_SESSION['last_activity'] = time(); // 현재 시간 저장
}
이 코드에서는 로그인이 성공적으로 수행되었을 때, $_SESSION
변수에 loggedin
과 last_activity
두 가지 정보를 저장한다.
여기서 last_activity
는 로그인한 시점의 시간이다.
2. 자동 로그아웃 체크
다음으로, 각 페이지 접근 시마다 세션의 유효성을 체크하는 코드이다.
phpsession_start();
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
// 1800초 = 30분
if (time() - $_SESSION['last_activity'] > 1800) {
// 마지막 활동으로부터 30분이 지났다면
session_unset();
// 세션 변수 해제
session_destroy();
// 세션 파괴
header('Location: login.php');
// 로그인 페이지로 리다이렉트
exit();
} else {
$_SESSION['last_activity'] = time();
// 시간을 갱신
}
}
이 코드는 페이지에 접근할 때마다 사용자의 마지막 활동 시간을 확인하고, 30분이 경과했는지 판단한다.
만약 30분이 경과했다면, 세션 정보를 파괴하고 사용자를 로그인 페이지로 리다이렉트한다.
아니라면 마지막 활동 시간을 현재 시간으로 갱신한다.
3. 요약
이러한 방식을 통해 사용자가 웹사이트에서 30분 동안 아무런 활동도 없으면 자동으로 로그아웃되게 할 수 있다.
이 기능은 사용자의 보안을 강화하는 데 도움을 줄 수 있다.
Tags #PHP #session 잘 보고갑니다.