将现有的PHP会话与MediaWiki集成

时间:2018-04-05 22:34:48

标签: php mediawiki mediawiki-api

我有一个网站,并希望将Wiki集成到其中。

我知道我可以在用户登录时更改我的代码以注册和/或设置wiki cookie,但这会降低系统速度,特别是因为不是每个用户都会访问wiki。

有没有办法让wiki检查PHP会话是否存在并自动显示来自主站点的登录用户还登录wiki?

我试过调查SessionManager和AuthManager但是纪录片对我来说太复杂了,因为这是我第一次使用MediaWiki。如果有人能够为我指出正确的文档部分,我将非常感激。

1 个答案:

答案 0 :(得分:0)

是的,这就是会话提供商的用途。这样的事情可能有用:

MySessionProvider extends ImmutableSessionProviderWithCookie {
    public function provideSessionInfo( WebRequest $request ) {
        $user = getUserFromCustomCookies();
        if ( $user ) {
            return new SessionInfo( SessionInfo::MAX_PRIORITY, [
                'provider' => $this,
                'id' => md5( $user->getName() ),
                'userInfo' => UserInfo::newFromUser($user, true),
                'persisted' => false,
             ] );
        }
        return null;
    }
}

(不要设置sessionCookie*参数。)