【问题标题】:How to redirect user after authentication认证后如何重定向用户
【发布时间】:2013-10-14 01:09:13
【问题描述】:

我已经在 joomla 2.5 中成功创建了一个自定义注册页面,并且根据用户类型,我想在登录后将用户重定向到不同的视图。我该如何实现呢?我需要创建身份验证插件或自定义登录模块吗?

谢谢

【问题讨论】:

  • 使用默认 Joomla 注册表单的自定义注册页面?还是社区建设者?还是别的什么?
  • 我创建我的客户注册表不是 joomla 也不是社区 bulider

标签: joomla joomla2.5 joomla-extensions


【解决方案1】:

试试这个,

Joomla 有一个用于登录目的的模块,您可以使用它或只检查 com_users/view/

用于从您可以使用的任何页面成功登录 joomla 后重定向

<input type="hidden" name="return" value="<?php echo base64_encode("your return url"); ?>" />

这个隐藏字段应该可以在您的登录模块表单中找到,如下所示。

<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; ?>
            <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>

您只需将您的返回网址放在隐藏字段中,base64_encoded 登录成功后,Joomla 将重定向到此网址。

如果您需要在身份验证后重定向,这不是核心文件编辑,这意味着您已经提供了一个应该有隐藏字段的登录表单,如返回或只是添加它。

在另一种情况下,如果您只想知道重定向选项。

$mainframe = JFactory::getApplication();
$mainframe->redirect("your redirect url",'message' ,'message type');

希望对您有所帮助...

【讨论】:

  • 我真的不想编辑 joomla 核心文件。没有办法吗?
  • @Ololadeenifeni - 你不会编辑任何 Joomla 核心文件,因为你说这是一个自定义表单,不是通过 Joomla 完成的
  • 好的。我很理解你要求我做什么。这是我在注册时创建了两种不同的用户类型,例如代理和用户。如果代理或用户然后执行我的重定向,我会寻找用户。
  • @Ololadeenifeni 上面的代码不是核心文件编辑,它只是登录模块表单的一个示例,您可以使用登录模块,或者如果您使用像注册这样的自定义表单,只需添加隐藏字段它会起作用的..
  • @jobinJose - 谢谢。我还发现我可以编写一个插件来调用 onAfterRoute 事件,然后我看到了一个我认为很有帮助的插件。非常感谢
【解决方案2】:

非商业的“登录重定向”扩展:http://extensions.joomla.org/extensions/access-a-security/site-access/login-redirect/15257,它根据访问级别/用户组或 JED 中登录重定向类别中的类似扩展重定向用户登录:http://extensions.joomla.org/extensions/access-a-security/site-access/login-redirect

【讨论】:

    【解决方案3】:

    它只是3.x中的捷径

    在 Joomla 中打开路径plugins\authentication\cookie\cookie.php

    在函数onUserAfterLogin($options)顶部,

    $user   = JFactory::getUser();
            $groups = $user->get('groups');
    
                if(in_array(10, $groups)) 
                {
                 $url = JRoute::_('index.php?option=com_students');
                 $this->app->redirect($url);
                } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多