[PHP] 30분뒤 자동으로 로그아웃하는 코드 - Session


[PHP] 30분뒤 자동으로 로그아웃하는 코드 - Session




최초 작성일 : 2023-09-10 | 수정일 : 2023-09-10 | 조회수 : 869

PHP에서 30분 뒤에 자동으로 사용자를 로그아웃하는 방법에 대해 알아보자. 이 기능은 보안 측면에서 매우 중요하며, 웹 애플리케이션의 사용자 경험(UX)를 향상시킬 수 있다.
이 포스트에서는 PHP의 $_SESSION을 활용하여 이 기능을 구현하는 방법을 알아보자.

1. 기본 코드 작성

먼저 로그인 할 때의 코드 일부이다.

php
session_start();
if ($isLoginSuccess) {
// 로그인 성공 여부를 판단하는 조건문이다.

$_SESSION['loggedin'] = true; $_SESSION['last_activity'] = time(); // 현재 시간 저장
}

이 코드에서는 로그인이 성공적으로 수행되었을 때, $_SESSION 변수에 loggedinlast_activity 두 가지 정보를 저장한다.
여기서 last_activity는 로그인한 시점의 시간이다.

2. 자동 로그아웃 체크

다음으로, 각 페이지 접근 시마다 세션의 유효성을 체크하는 코드이다.

php
session_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  

😀 닉네임
🧨 댓글내용 ( 주의: HTML 태그 및 URL은 저장시 제거됩니다. )