SSO (Single Sign-On)
メイン サイトとInvision Power Board
ソフトウェアの間で使用するシステムを構築しましたが、ユーザーIPB
がメイン サイトからログアウトしたときに、ユーザーをログアウトする方法がわかりません。
さらに、これを行うには、外部ファイルにどのファイルをロードする必要がありますか?
SSO (Single Sign-On)
メイン サイトとInvision Power Board
ソフトウェアの間で使用するシステムを構築しましたが、ユーザーIPB
がメイン サイトからログアウトしたときに、ユーザーをログアウトする方法がわかりません。
さらに、これを行うには、外部ファイルにどのファイルをロードする必要がありますか?
編集:これにIPBコードを使用するには、含める必要があります
require_once( IPS_ROOT_PATH . 'applications/core/modules_public/global/login.php' );
次に、拡張してこれを機能させるメソッドpublic_core_global_login
を呼び出すに
は、個人的にはこの方法を行ったことがないので、手動で行う方法を以下に示します。doLogout()
$this->member->setMember( $member_id );
IPB はセッションでデータを設定し、自動ログイン用にいくつかの Cookie を保存します。IPB ソースを使用せずに実行できます。あなたがしなければならないことは次のとおりです(queryとupdatecookieは、それぞれDBクエリを実行し、Cookie値を設定するための疑似関数であることに注意してください):
query("DELETE FROM ".$ibf_prefix."sessions WHERE member_id = $userid");
updatecookie($ibf_cookieid."member_id",0,time()-1800);
updatecookie($ibf_cookieid."pass_hash",0,time()-1800);
updatecookie($ibf_cookieid."session_id",0,time()-1800);
conf_global.php から $ibf_prefix を読み取ることができます:
$ibf_prefix = $INFO[sql_tbl_prefix];
そして$ibf_cookieid
次のとおりです。
$ibf_cache = query_first("SELECT cs_value FROM " . $ibf_prefix . "cache_store WHERE cs_key = 'settings'");
$ibf_cache = unserialize($ibf_cache['cs_value']);
$ibf_cookieid = $ibf_cache['cookie_id'];
doLogout
メソッドのソースを読むことができますadmin/applications/core/modules_public/global/login.php
このための IPB API については知りません。