Shinnara's Blog
Talking with Shinnara :: NaraTalk.com


지난 주인가요? phpBB 와 기존의 사이트(시스템 A)의 사용자 계정을 연동하여, 단일 로그인으로 처리하는 부분에 대한 글을 썼었습니다.  시스템 A의 로그인 정보를 이용하여 phpBB에 로그인하는 것은 잘 되는데, 만약 시스템 A에서 로그아웃을 하게 되면, phpBB 역시 로그아웃을 해주어야 합니다. 그렇지 않으면 시스템A에서는 로그 아웃이 된 상태인데, phpBB 페이지로 들어가면 해당 사용자가 로그인한 것으로 인식되는 문제가 발생하게됩니다.

phpBB는 로그 아웃시 includes/sessions.php 에 선언된 session_end() 함수를 이용하여 세션을 정리하게 됩니다. 따라서 여기서도 해당 내용을 호출하면 됩니다. 시스템 A의 로그아웃을 처리하는 함수에서 직접 includes/sessions.php 를 include 하여 해당 함수를 호출할 수 도 있으나, 그렇게 되면 의존성의 측면에서 전체 시스템의 모습이 안 좋아질 수 있으므로, 간단한 파일을 하나 더 생성합니다. 저의 경우는 phpBB 디렉토리 바로 아래에 session_end.php 라는 이름으로 만들었습니다.

[session_end.php]

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);

session_end($userdata['session_id'], $userdata['user_id']);

?>


위의 파일을 로그 아웃을 하는 쪽에서 include 하면 되겠지요, 아래처럼요..

...
session_unset();
include("/phpBB2/session_end.php");
...





이올린에 북마크하기(0) 이올린에 추천하기(0)
0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/220 관련글 쓰기

댓글을 달아 주세요

1  ... 87 88 89 90 91 92 93 94 95  ... 249 
다...... (249)
Computer/Programming (106)
Links (14)
책 읽는 즐거움 (6)
끄적임 (61)
즐거운 과학 나라 (7)