2014-10-07 85 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