웹프로그래밍2012. 8. 28. 20:16

저번에는 로그인 처리의 구현을 해봤는데, 이번에는 로그인 유지하는 부분이다.

지난 부분을 살짝 뒤짚어보면 로그인 유지를 위한 키 값을 데이터베이스와 세션에 등록시켰던 부분이 있었다.

이번에는 그 두가지를 모두 불러와서 대조하고 사용할 것이다.


<?php

//세션을 사용하기 위해 선언하는 부분
session_cache_limiter('');
session_start();
//데이터베이스에 접근하기 위한 부분
$dbid = "DB아이디";
$dbpass = "DB비밀번호";
$dbname ="DB네임";
$dbhost = "localhost";
$sqlConn = mysql_connect($dbhost, $dbid, $dbpass);
mysql_select_db($dbname, $sqlConn);

//세션에서 토큰(키 값)을 가져온다.
$getSessionToken = $_SESSION['token'];
//세션에서 아이디를 가져온다.
$id = $_SESSION['id'];
//*사실 아이디와 같은부분은 서버에 부담을 최소화하기위해 쿠키에 저장하는게 바람직하다.
//데이터베이스에서 id가 가진 토큰을 가져온다.
$getDBToken = "SELECT token FROM MEMBERS WHERE id='$id'";
$getDBToken = mysql_query($getDBToken);
$getDBToken = mysql_result($getDBToken, 0);
//세션에 등록한 토큰과 데이터베이스의 토큰이 일치하면
if($getDBToken == $token && $token)
//로그인 인정
$login = 1;
else
$login = 0;
?>


다시 한번 강조하지만 이것은 간단한 로그인 구현을 목적으로 한 코딩이다.

실제로는 앞서 1편에서 말했듯이 HTTPS 프로토콜을 사용하며, 대조 시에 사용되는 정보도 IP주소 등을 포함해 더욱 많다.

여기서 작성된 코드는 단순히 토큰을 세션에 넣어두고, 데이터베이스에도 넣어둔 것을 비교해가면서 로그인 여부를 구현한다.


Posted by 김또또