Joomla组件:覆盖登录操作?

时间:2014-10-07 17:31:48

标签: php joomla

我想在我自己的Joomla组件中覆盖登录方法以获取登录名和密码。

我使用的是Wordpress,他只需添加add_action('my_action','my_function')等动作......

如何在Joomla中获取登录方法?我不知道或发现......

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用以下方式登录:

$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)并使用其中一个事件。

答案 1 :(得分: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