2014-10-07 83 views
1

我想重寫我自己的Joomla組件中的登錄方法來獲取登錄名和密碼。Joomla組件:重寫登錄操作?

我使用WordPress的,他只需像ADD_ACTION(「my_action」,「創建my_function」)的動作......

我怎樣才能在的Joomla登錄方法?我不知道或發現...

感謝您的幫助。

+0

你能澄清你想關於用戶登錄流程專門重寫什麼。您是在嘗試創建驗證邏輯還是試圖掛鉤用戶登錄邏輯來捕獲/操作數據? – 2014-10-07 20:15:00

+0

我嘗試掛鉤用戶登錄來操作數據。 如果認證是成功的,我想獲得用戶名和密碼(未加密) – jlafforgue 2014-10-08 19:10:09

回答

1

您可以使用此密碼:

$app = JFactory::getApplication('site'); 
$credentials = array(
    'username' => 'someusername', 
    'password' => 'somepassword' 
); 
if(!$app->login($credentials)){ 
    echo 'Logged in'; 
}else{ 
    echo 'Not logged in'; 
} 
$app->logout(); // Log out with this 
$app->close();  // Close the app 

要添加自定義代碼登錄過程,你可以寫一個簡單的用戶身份驗證插件。 (請參閱Creating an Authentication Plugin for Joomla),並將您的代碼放在onAuthenticate()函數中。

要在身份驗證後添加自定義代碼,請編寫用戶插件(請參閱Plugin/Events/User)並使用其中的一個事件。

+0

謝謝,插件活動用戶對我很好 – jlafforgue 2014-10-10 21:01:06

+0

如果你接受我對我們的兩個聲譽的答案會很好:) – GDP 2014-10-11 00:17:07

1

達到此目的的最佳方法是編寫一個插件。無論您是編寫認證還是用戶插件,都取決於您的需求。兩者都可以讓你訪問你正在請求的數據。由於認證插件適用於使用備用源來認證用戶,我建議使用用戶插件。

<?php 
defined('_JEXEC') or die; 

class plgUserCustom extends JPlugin 
{ 
    /** 
    * This method should handle any login logic and report back to the subject 
    * 
    * @param array $user  Holds the user data 
    * @param array $options Array holding options (remember, autoregister, group) 
    * 
    * @return boolean True on success 
    * 
    * @since 1.5 
    */ 
    public function onUserLogin($user, $options) 
    { 

     // Here you can access the un-encrypted POST data using the 
     // $user parameter 
     return true; 
    } 

} 

還有很多可以做的事情,比如在用戶保存事件之前和之後修改默認窗體和添加/操作數據。我附加了一些關於插件的鏈接以供進一步閱讀。

祝你好運!

http://docs.joomla.org/Plugin/Events/User http://docs.joomla.org/Plugin

+0

謝謝,這是好的解決方案! – jlafforgue 2014-10-10 20:03:04

+0

歡迎您:) – 2014-10-10 20:04:21