소개
"remember me" 기능을 구현하면 사용자는 브라우저를 닫은 후에도 로그인 상태를 유지합니다. 이 기능은 사용자 편의성을 향상시키고 전반적인 사용자 경험을 향상시킵니다. 이 글에서는 지속적인 로그인 메커니즘을 위해 사용자의 브라우저에서 쿠키를 저장하고 확인하는 안전한 방법을 살펴보겠습니다.
쿠키를 안전하게 저장
안전하게 쿠키를 저장하면 데이터베이스에서 별도의 테이블을 활용합니다.
CREATE TABLE `auth_tokens` ( `id` integer(11) not null UNSIGNED AUTO_INCREMENT, `selector` char(12), `token` char(64), `userid` integer(11) not null UNSIGNED, `expires` datetime, PRIMARY KEY (`id`) );
로그인 후 처리
"기억하기" 옵션이 활성화된 상태로 로그인에 성공하면:
다음 값으로 쿠키를 설정합니다.
'remember': $selector.':'.base64_encode($authenticator)
페이지 로드 시 재인증
사용자를 재인증하려면:
if (empty($_SESSION['userid']) && !empty($_COOKIE['remember'])) { list($selector, $authenticator) = explode(':', $_COOKIE['remember']); $row = $database->selectRow( "SELECT * FROM auth_tokens WHERE selector = ?", [ $selector ] ); if (hash_equals($row['token'], hash('sha256', base64_decode($authenticator)))) { $_SESSION['userid'] = $row['userid']; // Regenerate login token and update database } }
접근 방법 세부 정보
위 내용은 PHP와 쿠키를 사용하여 안전한 '기억하기' 기능을 구현하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!