PHP 에서 자동 로그인 구현 방법

망치의 이미지


일반적으로 세션을 이용해서 로그인 처리를 할때, 로그인 하면 쿠키로 세션키를 클라이언트에 발급하고 서버의 세션정보에 사용자 정보를 저장해서 운용하는걸로 알고있는데요. 이 세션이 일정시간후엔 자동으로 정리가되죠? 사용자가 expire 시간까지 한 페이지에서 머물러 있거나.. 아니면 로그아웃 없이 브라우저를 닫거나 했을때..

expire 시간이 지나면 서버에선 해당 세션에 대한 정보가 삭제되고.. 사용자가 다시 접속을 하면 새로 로그인을 해야 하구요.

근데 자동 로그인을 구현하기 위해서는 서버에서 세션 정보를 정해진 expire 시간보다 더 오래 가지고 있어야 할텐데.. 이런건 보통 어떻게 처리하나요? 사용자가 직접 로그아웃 링크를 클릭하여 destory 시키기 전까지 세션데이터의 expire 기간을 무제한으로 한다거나.. 무제한급으로 늘려준다거나 하는건가요?

다른곳에 질문했더니 쿠키에 아이디와 패스워드를 저장해두는거라고 하는데.. 제 상식으로 쿠키에 그런 정보를 저장하는건 상당히 위험하고.. 그런 정보를 쿠키에 넣지 않기 위해서 세션을 이용하는걸로 아는데.. ㅡ.,ㅡ;;

송효진의 이미지

보통 쿠키에 세션키를 구울 때 잔류시간0 으로 구워서 브라우저 종료와 함께 삭제되도록 만들죠.
그렇게 되면 쿠키가 파일로 만들어지지도 않고, 메모리상에만 존재하게 됩니다.
그래서 브라우저를 끄면 로그인을 다시 해야 하는거죠.

자동로그인시는 쿠키에 잔류시간을 줘서 브라우저를 닫아도 쿠키가 지워지지 않게 하고,
php 의 세션을 db 세션으로 작성하고, 가비지 컬렉팅 할 때 참조할 자동로그인 사용자 필드 하나 만들어서
autologin = false 만 delete 하도록 하면 어느정도는 만족할 결과가 나올 것 같네요.

emerge money

망치의 이미지

매번 감사드립니다. :D

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.