2013-04-15 21 views
7

Sitemize Moodle ekliyoruz (farklı bir sunucu, farklı bir alt etki alanı ama aynı ana etki alanı ve sunucular birbiriyle iletişim kurabilmek için kuruldu) ve ne istiyoruz bunu yapmak zorunda olduğunu:Moodle Kabul et Harici siteden giriş

  • kullanıcı ana siteyi erişir
  • kullanıcı
  • kullanıcı günlükleri Moodle bağlantısını tıklarsa
  • kullanıcı otomatik kendi bilgilerine yeniden girmek zorunda kalmadan Moodle'a kaydedilir
  • Eğer Kullanıcı imleri veya doğrudan Moodle erişir, hala orada doğrudan giriş yapabilirsiniz

Biz zaten ben sadece var, o da Moodle için çalışmak db auth (harici veritabanı doğrulaması) bu yüzden ana sitesinden hesaplarını kullanarak kurmak zorunda Moodle, mevcut kimlik bilgilerini kabul etmek ve kullanıcıyı otomatik olarak oturum açmak için nasıl bir fikir edinmeyecek.

+0

Dış sitenizi moodle'ınıza nasıl bağlayacağınız konusunda bana yardım edebilir misiniz? Çok denedim ... ama yapamadım..ben bana yardım edebilir misiniz – user3663

cevap

9

Bu sorunu çözebildiğim ve çözümün, başkalarının da benzer bir sorunu olması durumunda paylaşacağımı düşündüm. Ne yaptım ana site için oturum açma komut dosyası

bizim Moodle sitesi ve ana sitesi aynı etki alanında olduğundan

, ben aşağıdaki kodu eklendi: Temelde

$postData = array('username' => $username, 'password' => $password); 
$post = http_post_fields('http://moodle.example.com/login/index.php', $postData); 
$headers = http_parse_headers($post); 
foreach($headers['Set-Cookie'] as $cookie) 
{ 
    $details = http_parse_cookie($cookie); 
    foreach ($details->cookies as $name => $value) 
     setcookie($name, $value, $details->expires, $details->path, 'example.com'); 
} 

, ben giriş kimlik yayınlanmıştır http_post_fields kullanarak moodle giriş komut dosyasına, cURL de işe yaramasına rağmen, çerezleri Moodle setini almak için başlıkları ayrıştırdı, daha sonra bu tanımlama bilgilerini daha spesifik Moodle alt etki alanı yerine temel etki alanını kullanarak kendim atadım. Bu, kullanıcının belirli bir alt alandan mevcut bir çerezi varsa bazı sorunlara yol açabilir, bu nedenle mevcut çerezleri MoodleSession adıyla sildiğinizden emin olun.

+0

Bir alan mı yoksa iki alt alan mı kullandınız? –

+0

farklı etki alanında ise? – user3663