了解Joomla默认登录


Understanding Joomla default login

我对Joomla和Php还很陌生。我需要了解Joomla是如何执行登录操作的(通过php代码)。以下是执行操作的php代码段:

<form action="<?php echo JRoute::_('index.php?option=com_users&task=user.login'); ?>" method="post">
        <fieldset>
            <?php foreach ($this->form->getFieldset('credentials') as $field): ?>
                <?php if (!$field->hidden): ?>
                    <div class="login-fields"><?php echo $field->label; ?>
                    <?php echo $field->input; ?></div>
                <?php endif; ?>
            <?php endforeach; ?>
            <?php if (JPluginHelper::isEnabled('system', 'remember')) : ?>
            <div class="login-fields">
                <label id="remember-lbl" for="remember"><?php echo JText::_('JGLOBAL_REMEMBER_ME') ?></label>
                <input id="remember" type="checkbox" name="remember" class="inputbox" value="yes"  alt="<?php echo JText::_('JGLOBAL_REMEMBER_ME') ?>" />
            </div>
            <?php endif; ?>
        <button type="submit" class="button"><?php echo JText::_('JLOGIN'); ?></button>
            <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />
            <?php echo JHtml::_('form.token'); ?>
        </fieldset>
    </form>

据我所知,第一行执行POST请求,将用户名和密码发布到服务器。此外,应在成功验证后检索会话令牌。然而,我无法弄清楚这一行中的用户名和密码(由用户插入,应该通过POST请求发送)到底在哪里。或者,它们是从哪里取回的?此外,响应内容(会话令牌)存储在哪里?

我的目标是使用JavaScript模拟请求,这样我就可以使用外部移动应用程序进行登录。换句话说,我需要用JavaScript编写相同的逻辑,这样我才能从移动应用程序登录到网站。

字段从login.xml文件中检索,路径为''components''com_users''models''forms。getFieldset('credentials')将获取上述文件中名称为"credentials"<fieldset name="credentials"的字段集的字段详细信息。您可以使用foreach来显示字段。您可以参考此链接了解更多信息。