小编Jul*_*eek的帖子

MediaWiki扩展:GoogleAppsAuthentification Multiple Domains

我一直在使用适用于mediawiki 的优秀GoogleAppsAuthentification扩展程序,以允许我的用户使用他们的Google Apps帐户登录.我们最近在我们的Google Apps中添加了另一个域名,我想为这些用户提供使用Google Apps域名登录我们的wiki的选项.

开箱即用,扩展无法实现这一点,但添加多个域支持似乎非常简单.

我们的想法是在执行重定向到Google登录屏幕之前,向用户提示可用域的下拉列表.

我对mediawiki API的了解相当有限,我可以使用一些指针.

扩展挂钩到UserLoadFromSession挂钩,该挂钩在UserLoginForm挂钩之前调用.我必须向此函数添加代码以提示用户输入域,并返回此功能,将所选域传递给getGoogleAccount()

// in LocalSettings.py
$wgDefaultUserOptions['GoogleAppsDomainList'] = array("domain.com", "otherdomain.com");

// in GoogleAppsAuthentication.php
function fnGoogleAppsAuthenticateHook($user, &$result){
    global $IP, $wgLanguageCode, $wgRequest, $wgOut, $wgDefaultUserOptions;
    if (isset($_REQUEST["title"])){
            $lg = Language::factory($wgLanguageCode);

            if ($_REQUEST["title"] == $lg->specialPage("Userlogin")){
                    // this is where we need to add the prompt 
                    // that asks the user which domain to chose
                    $domain = getDomainFromUser($wgDefaultUserOptions['GoogleAppsDomainList'])

                    // Setup for a web request
                    require_once("$IP/includes/WebStart.php");

                    // Here we do our stuff
                    $googleAccount = getGoogleAccount('title=' . $_REQUEST["title"], …
Run Code Online (Sandbox Code Playgroud)

php openid mediawiki oauth google-apps

16
推荐指数
1
解决办法
682
查看次数

标签 统计

google-apps ×1

mediawiki ×1

oauth ×1

openid ×1

php ×1