2014-01-16 88 views
1

中的Joomla用戶進行身份驗證我希望能夠通過一個AJAX調用來認證的Joomla用戶,所以如果登錄不正確,我可以創建錯誤的效果和用戶重定向如果是正確。如何通過AJAX/JQuery的

我寧願通過JQuery的.ajax API來做到這一點。

而且,我需要以某種方式初始化JQuery的或它已經存在,你只需要使用「JQuery的」,而不是「$」?

回答

0

試試這個,

您可以使用Joomla的登錄選項進行Ajax登錄驗證。

通過帖子收集您的用戶名和密碼並設置爲陣列。

$options = array(); 
    $options['remember'] = JRequest::getBool('remember', false); 
    $data['username'] = JRequest::getVar('username', '', 'method', 'username'); 
    $data['password'] = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); 
    $credentials = array(); 
    $credentials['username'] = $data['username']; 
    $credentials['password'] = $data['password']; 
    $app = JFactory::getApplication(); 
    $error = $app->login($credentials, $options); 
    if (!JError::isError($error)) { 
    // login success 
    } 
    else{ 
    //Failed attempt 
    } 

如果您有任何自定義組件,上面的代碼段可以寫入任何控制器函數中。如果您正在使用Joomla3.x,則可以使用com_ajax執行此任務。

var data = "";//set your user name and password 
jQuery.ajax ({ 

     type: "POST", 

     url: "index.php?option=com_ajax&task=loginauth", 

     data: data, 

     success: function(data) { 
     } 
      }); 

當您在您的應用程序jQuery庫,然後只需用jQuery '$'訪問它用於哞工具Joomla.For包括jQuery庫你可以編輯該模板文件templates/yourtemplate/index.php

希望它可以幫助..

+0

'如果你正在使用Joomla3.x您可以使用com_ajax這個task.' >>您還可以使用com_ajax爲Joomla 1.5和2.5,但你需要手動下載(github上)和安裝; ) – Lodder

+0

那麼,如果我使用3.x,我不需要PHP代碼?只需調用index.php?option = com_ajax&task = loginauth並將數據對象設爲用戶名和密碼? – kidalex

+0

@kidalex無論如何,您必須在控制器上添加loginauth(),並在其中添加上面的php代碼。 –