찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
{{tag>xe dokuwiki session authxe 도쿠위키}} ======Authxe: XE & Dokuwiki 동시 로그인====== [[도쿠위키|도쿠위키]]의 강력한 유연성 (커스터마이징 능력) 을 십분 활용하여 **로긴/로그아웃**은 **[[XE]]**로 하고 도쿠위키에서는 그 정보만 가져다 쓰는 방법이다. <del>도쿠위키의 로긴/로그아웃 버튼은 떼버려야한다.</del> 설정의 Disabled action에 ** login,logout**을 입력한다. ===== inc/init.php 수정===== <del>도쿠위키 루트에 있는 파일 **doku.php** 혹은</del> /inc/init.php를 수정한다. <WRAP center round important 60%> doku.php를 수정하면 페이지를 표시하는 것 외의 다른 작업 (그림 올리기 등) 에서는 ACL이 안먹는다. 그러니 init.php를 수정해야 한다.</WRAP> 가장 최상단에 다음의 내용을 삽입한다. 도쿠위키 시작시에 XE도 같이 시작하는 것이다. <code php><?php define("__ZBXE__",true); // xe 여기있소! define("__XE__",true); //XE 1.5.3 이후의 버전에서는 추가해야 한다. require_once("/home2/vaslor/html/bb/config/config.inc.php"); //XE설정파일의 적절한 경로를 넣다. $oContext = &Context::getInstance(); $oContext->init(); //도쿠위키 시작시에 XE도 같이 시작하는 것이다. ?> </code> =====authxe plugin 추가===== lib/plugins 폴더에 authxe 폴더를 추가하고 아래 파일을 넣다. <file php auth.php><?php // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); /** * Authxe authentication backend * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author V_L <dryoo@live.com> */ class auth_plugin_authxe extends DokuWiki_Auth_Plugin { protected $users = null; protected $_pattern = array(); public function __construct() { parent::__construct(); $this->cando['external'] = true; global $config_cascade; } function trustExternal($user,$pass,$sticky=false){ global $USERINFO; if (class_exists(Context)) { $logged_info = Context::get("logged_info"); if($logged_info){ $sticky ? $sticky = true : $sticky = false; $USERINFO['name'] = $logged_info->nick_name; $USERINFO['pass'] = $logged_info->password; $USERINFO['mail'] = $logged_info->email_address; $USERINFO['grps'] = @array_values(@array_filter($logged_info->group_list)); $_SERVER['REMOTE_USER'] = $logged_info->user_id; $_SESSION[DOKU_COOKIE]['auth']['user'] = $logged_info->user_id; $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO; return true; } else return false; } else return false; } }</file> =====도쿠위키 설정===== ====템플릿 선택 및 어드민 설정==== ^ 위치 ^ 내용 ^ |설정 -> 인증설정->authtype 인증 백-엔드 | "authxe"를 선택한다.| |설정 -> 인증설정-> manager 관리자 |<del> "@관리그룹" 을 추가 한다.</del> | 이 것보다는 그냥 xe에서 그룹을 admin, user등으로 바꾸는 것이 더 낫다. ====도쿠위키 로그인/로그아웃 막음==== 이제 도쿠위키의 로긴/로그아웃은 작동하지 않는다. 의미가 없으므로 설정에서 그림과 같이 등록, 로긴,로그아웃을 제한한다. 이렇게 하면 메뉴에 해당항목이 나타나지 않다. <del>템플릿(스킨)을 적절히 수정하여 login/logout 버튼을 뗍니다.</del> {{tech/authxe.jpg}} ==== 로긴/로그아웃 링크 넣기==== ===사이드바에 넣기 (쉬움)=== 사이드바 (sidebar) 를 편집한다. [[http://vaslor.net/bb/?act=dispMemberLogout|로그아웃]] [[http://vaslor.net/bb/?act=dispMemberLoginForm|로그인]] [[http://vaslor.net/bb/?act=dispMemberLogout|로그아웃]] [[http://vaslor.net/bb/?act=dispMemberLoginForm|로그인]] 로그인/로그아웃 상태가 반영되지 않는 단점(!)이 있다. ===xe의 로긴/로그아웃으로 연결되는 링크를 템플릿을 수정하여 넣기=== 뷀넷에서 처리한 방식이다. <code php> <ul class="" style="text-align:right"> <?PHP if (class_exists(Context)) { $logged_info = Context::get("logged_info"); if($logged_info){ echo "<li ><a>".$logged_info->nick_name." (".$logged_info->user_id.")"."</a></li> <li ><a s href=\"http://vaslor.net/bb/?act=dispMemberLogout\">로그아웃</a></li>"; } else { echo "<li><a href=\"http://vaslor.net/bb/?act=dispMemberSignUpForm\">회원가입</a></li> <li><a href=\"http://vaslor.net/bb/?act=dispMemberLoginForm\">로그인</a></li>"; } }?> </ul></code> 사용하는 템플릿 주로 dokuwiki 템플릿을 직접 수정하여 위의 코드를 삽입하는 것이다. 도쿠위키 설치된 곳에서 /lib/tpl/dokuwiki/main.php 를 수정하면된다. 44줄에 사이드 바 명령 밑에 넣으면 적당할 듯 보이다.... <code php> <div class="content"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <?php tpl_include_page($conf['sidebar'], 1, 1) ?> <?php tpl_includeFile('sidebarfooter.html') ?> </div> </code> 이것에 문구를 추가한다. <code php> <div class="content"> <?php tpl_flush() ?> <?php tpl_includeFile('sidebarheader.html') ?> <ul class="" style="text-align:right"> <?PHP if (class_exists(Context)) { $logged_info = Context::get("logged_info"); if($logged_info){ echo "<li ><a>".$logged_info->nick_name." (".$logged_info->user_id.")"."</a></li> <li ><a s href=\"http://vaslor.net/bb/?act=dispMemberLogout\">로그아웃</a></li>"; } else { echo "<li><a href=\"http://vaslor.net/bb/?act=dispMemberSignUpForm\">회원가입</a></li> <li><a href=\"http://vaslor.net/bb/?act=dispMemberLoginForm\">로그인</a></li>"; } }?> </ul> <?php tpl_include_page($conf['sidebar'], 1, 1) ?> <?php tpl_includeFile('sidebarfooter.html') ?> </div> </code> ''http://vaslor.net/bb'' 를 해당 사이트의 게시판주소로 바꿉니다. * 참고: https://www.dokuwiki.org/devel:working_example_of_trustexternal {{daumview>50475960?box}} ^ 누구나 수정하실 수 있다. [[http://vaslor.net/syntax|위키 사용법]] 참고하라. ^
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
공지 [14/08/25] 로그인 변경
도쿠위키 (Dokuwiki)
XE & Dokuwiki 동시 로그인
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
기술
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye