2015-06-04 180 views
3

我正在嘗試將我的第一個Moodle驗證擴展插件登錄後直接進行確認和登錄。註冊後登錄Moodle登錄

我已經改變了user_signup功能,在「電子郵件」身份驗證插件是這樣的:

\core\event\user_created::create_from_userid($user->id)->trigger(); 

$DB->set_field("user", "confirmed", 1, array("id"=>$user->id)); 

$user = get_complete_user_data('username', $username); 
$DB->set_field("user", "firstaccess", time(), array("id"=>$user->id)); 
$DB->set_field("user", "lastlogin", 0, array("id"=>$user->id)); 
update_user_login_times($user); 

complete_user_login($user); 
redirect("$CFG->wwwroot/enrol/index.php?id=2"); 

它的工作原理,只要用戶被註冊了,並確認。但是,作爲登錄我收到以下錯誤:

核心\會話\管理:: login_user()必須是一個stdClass的實例,給

我可能會在這裏裝傻布爾,但我不知道如何在這裏登錄新用戶。任何幫助將非常apprechiated。謝謝!

回答

1

創建用戶帳戶後,獲取您輸入的用戶名和密碼,然後像這樣執行。

if ($user = authenticate_user_login($username, $password)) { 
/// Let's get them all set up. 
     complete_user_login($user); 
     redirect($CFG->wwwroot . 'URL you want'); 
} 
+0

是否有可能讓任何學校的學生使用moodle登錄來登錄?例如,我有一本大學書籍租借應用程序,id喜歡有一個「用moodle登錄」按鈕。可能? – ChuckKelly

+0

Moodle不提供此功能,但您可以創建自己的API,以便使用Moodle執行登錄。 –

+0

感謝Priye,但實際上我不知道如何獲取用戶名和密碼。 –