CI 묻고 답하기

제목 다중 로그인
글쓴이 김지 작성시각 2013/01/08 17:21:49
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18469   RSS
한 컴퓨터에서 익스플로러를 두개를 킨 상태로 로그인을 다르게 했을 때
세션값을 다르게 저장할 수 있는 방법이나 라이브러리가 있을까요?
 다음글 controller에서 view에 경고창 띄우기. (3)
 이전글 메일 보내기 관련 질문 인데용. (7)

댓글

변종원(웅파) / 2013/01/08 17:40:04 / 추천 0
현재 상태로는 방법이 없습니다. 

같은 아이피에 같은 브라우저면 체크할 것은 시간밖에 없는데 많이 뜯어고쳐야 할 것 같네요.

일반 사용자가 쓰는게 아니라면 (운영자 페이지 같은 곳에서 쓰는 것이라면) 2차 도메인을 다르게 하여
2차 도메인 마다 로그인 시킬 수는 있습니다.

a.a.com, b.a.com, c.a.com 이 있다면 3개 띄울 수 있겠죠.

뭘 하려고 하는지 목적을 알면 다른 구현방법이 나올 수도 있습니다만... ^^
헛발이 / 2013/01/09 12:20:23 / 추천 0
개발시에 일반인 모드랑 관리자 모드랑 두 화면을 켜 놓고 비교해 가면서 작업할때
그렇게 두개를 로그인 하고 싶을때가 있더라구요~

그럴땐 뭐...

타 부라우져로 하는 수 밖엔요~

저도 가끔 그럴땐 파폭하나랑 크롬 하나 띄우고 하거든요~
한대승(불의회상) / 2013/01/09 13:08:27 / 추천 0
헛발이// 그러고 보니 저도.. ^^
우왕아항 / 2013/01/09 14:16:07 / 추천 0
김지//
php에서는 세션 핸들러를 오버로딩해서 손쉽게 새로 작성할 수 있게끔 지원하고 있습니다.
http://kr.php.net/manual/en/class.sessionhandler.php

클라이언트를 구분 후, 세션 핸들러를 새로 구현함으로 구현 가능할 것으로 보입니다. (시도해보진 않아서 확신은 없습니다만 방법은 머릿속에서 그려지네요.)

위의 방법으로 서버 사이드의 클라이언트 별(여기서는 브라우저 1탭 별이 되겠네요) 로그인 관리는 확실히 가능하다고 보는데,
문제는 그 이전에 클라이언트를 구분하는 방법에 있습니다.
브라우저 혹은 웹서버를 직접 만들지 않는 이상, tcp/ip 를 개발자가 간섭할 수 없는 일반적인 웹환경(html5 환경 제외)으로는 브라우저 탭이 하나의 클라이언트다 라는걸 구분하는 것이 불가능하기 때문입니다.


간단하게 떠오른 편법적인 클라이언트를 구분하는 방법을 들자면
접속할때마다 컨넥션 ID 를 생성해서 리턴,  모든 액션에는 전부 저 컨넥션ID 파라메터가 따라 붙는 형태로 개발.
(첫번재 로그인 했을때는 http://homepage_url/?cid=1, 두번째로 로그인 했을때는 http://homepage_url/?cid=2 등으로)

그러면 "php in 웹서버"는 브라우저와 cid로 클라이언트를 구분할 수 있습니다.
새롭게 구현한 세션 핸들러 데이터를 뒤져서 컨넥션ID와 세션ID의 값이 존재할 경우 그에 맞는 처리를 하면 되리라 봅니다.


더 이상 생각해보진 않아서 의외의 문제가 발생할 수도 있겠지만 재미있는 개발이 될 것 같네요. ^^;


헛발이//
말씀하신 정도는, 클라이언트 의존도가 높은 개발방법을 취했다면 하나의 브라우저에서 가능합니다.
(일반/관리자 모드의 ui 구성을 자바스크립트가 했다면)

다만 한국 웹 개발이 문화적으로도 클라이언트 보다는 서버 의존도가 95%를 차지하고 있기 때문에,
관련 사례를 찾아보기 힘든것도 사실입니다. ㅠㅠ