2

我真的需要你的帮助。我是初级 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 响应。

例如,当我输入:

http://some.joomla.website/index.php?option=com_cjoomdroid&view=authetication&task=login&username=user&password=pass&format=raw

,我设法让用户登录到前端面板。所以那里没有问题,但是如果我想使用此代码以相同的用户登录管理面板:

    // 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);
    }

在这个链接上:

http://some.joomla.website/administration/index.php?option=com_cjoomdroid&view=authetication&task=login&username=user&password=pass&format=raw

,我收到错误。有没有办法以这种方式登录管理面板?

谢谢!

错误类似于“您的会话已过期;请重新登录..”等... Android 应用正在调用: HttpResponse response = httpclient.execute(new HttpGet(url.toString())); ,并且响应应该是 JSON 对象,例如:

{"login":true}
4

1 回答 1

0

自动登录 Joomla 可能非常棘手。
你应该看看这个关于谷歌群组的帖子。
有一个名为 FrameworkOnFramework 的库增强了 Joomla 的功能并允许您自动登录(通过 CLI 或使用简单的调用),提供了非常好的保护。

于 2012-10-12T13:30:12.090 回答