簡體   English   中英

帶有 Camilo LMS 的 Wordpress SSO - 在后台登錄到 camilo

[英]Wordpress SSO with Chamilo LMS - log in to chamilo in background

我正在努力設置從 Wordpress(站點 A)到 Camilo 1.9.6(站點 B)的 SSO。

我已經完成了在成功登錄到 WP 后嘗試將我登錄到 camilo 的腳本。

腳本代碼:基於 camilo 文檔(chamilo 有自己的 SSO 模塊)

function log_me_to_chamilo($username,$password) 
{
$chamilo_server_url = 'http://example.com/elearning/platform/';
$auth_server_url = 'http://example.com/elearning/';
$password = md5($password);
$sso = array(
        'username'          => $username,
        'secret'            => $password,
        'master_domain'     => $chamilo_server_url,
        'master_auth_uri'   => $auth_server_url,
        'lifetime'          => time() + 3600,
);
$cookie = base64_encode(serialize($sso));
$params = 'sso_referer='. urlencode($auth_server_url) .'&sso_cookie='. urlencode($cookie);
$final_url = $chamilo_server_url .'?'. $params;
header('Location: '.$final_url);
exit;
}

這工作正常,但畢竟我重定向到 camilo LMS 平台(站點 B),我想在后台執行此操作。 所以基本上我想要這樣的東西。

用戶登錄到站點 A -> Wordpress 如果所有登錄數據都正常,我們就登錄到 Wordpress。 在 wordpress 登錄用戶后,我想在后台登錄 camilo 站點 B - 我們留在站點 A。但是當用戶進入站點 B -(例如站點 A 中的鏈接) - 他將登錄。

我試圖將 curl 與 cookie 一起使用,但這對我來說是新事物,唯一的工作示例也將我重定向到站點 B。

如果有人能指出我如何在后台登錄站點 b 中的用戶的正確方向。 我應該用 curl 還是其他可能的 ajax 來做?

Camilo SSO 機制並沒有真正為“后台登錄”做好准備(讓我們這樣稱呼它)。

如果您希望用戶的瀏覽器從 Camilo 獲取會話 cookie 並保留它,則必須以某種方式使其加載 Camilo 站點。

然后,您可以做的是讓您的 Wordpress 插件打開一個新的單像素彈出窗口或 iframe,它將加載 Camilo 並登錄。

例如,您可以在用戶登錄到您的 Wordpress 站點后訪問的頁面上定義一個(不可見的/非常小的)iframe,並讓該 iframe加載 Camilo 站點並進行連接。 當 iframe 加載 Camilo 站點時,它會將 cookie 數據保存到您的瀏覽器中,並且您的瀏覽器已准備好在會話到期之前隨時訪問 Camilo。

如果上面的函數將返回 $final_url 而不是進行重定向,則可以將其用作<iframe src="'.log_me_to_chamilo('sam','max').'"></iframe> (包括所有類型的在此之前,模板和特定於 Wordpress 的東西)

這未經測試,但邏輯對我來說似乎沒問題。

如果你讓它工作並且它是免費軟件,請不要猶豫在 info ~at~ camilo ~dot~ org 報告,以便我們可以將其包含在我們的連接器列表中。 我知道有幾個人詢問過 Wordpress 單點登錄插件,我們團隊中沒有任何 Wordpress 人員,因此我們非常感謝。

我有一個額外的問題。 抱歉,我沒有回復,但我在 2013 年放棄了這個項目。我現在帶着新的 1.10 版本的 camilo 回到了這個問題上,看起來很棒。 我進行了 sso 登錄,因為 camilo 和 wordpress 使用相同的方式(md5)加密密碼,所以我只是使用 sso_secret 發送 md5 - 我將 wordpress 中的 md5 與 camilo 中的 md5 匹配。 但是在 v1.10 中我們得到了鹽,我必須知道如何將 md5 密碼傳遞給 camilo 並驗證它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM