我真的需要你的帮助。我是初级Joomla!开发人员和初级Android开发人员。我目前正在为Joomla构建一个Android应用程序!网站管理。那么,我在哪里需要帮助?
我使用此代码登录某些用户前端没有任何问题:
// Function for user login
// return : JSON array (login : true/false; user_id : if user is loged in)
public function login() {
$post = JFactory::getApplication()->input;
$result = array();
$username = $post->get('username');
$password = $post->get('password');
$credentials = array("username" => $username, "password" => $password);
$app = JFactory::getApplication('site');
$result['login'] = $app->login($credentials);
if($result['login']) {
$result['user_id'] = JUserHelper::getUserId($username);
}
CJoomDroidHelper::postResult($result);
}
我创建了名为CJoomDroid的组件,它是一个简单的Web服务,每次调用都有JSON响应。
例如,当我输入:
,我设法登录用户到前台面板。 所以没有问题,但如果我想使用此代码登录管理面板与同一用户:
// Function for user login
// return : JSON array (login : true/false; user_id : if user is loged in)
public function login() {
$post = JFactory::getApplication()->input;
$result = array();
$username = $post->get('username');
$password = $post->get('password');
$credentials = array("username" => $username, "password" => $password);
$app = JFactory::getApplication('admin');
$result['login'] = $app->login($credentials);
if($result['login']) {
$result['user_id'] = JUserHelper::getUserId($username);
}
CJoomDroidHelper::postResult($result);
}
在此链接上:
,我收到错误。有没有办法以这种方式登录管理面板?
谢谢!
错误就像“你的会话已经过期;请再次登录......”等... Android应用程序正在调用:HttpResponse response = httpclient.execute(new HttpGet(url.toString())); ,响应应该是JSON对象,如:
{"login":true}
答案 0 :(得分:0)
自动登录Joomla可能非常棘手 您应该查看Google群组中的this post 有一个名为FrameworkOnFramework的库可以增强Joomla的功能,并允许您自动登录(通过CLI或使用简单的调用),提供非常好的保护。