我想在我自己的Joomla组件中覆盖登录方法以获取登录名和密码。
我使用的是Wordpress,他只需添加add_action('my_action','my_function')等动作......
如何在Joomla中获取登录方法?我不知道或发现......
感谢您的帮助。
答案 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