【问题标题】:Joomla authentication over two separate joomla sites通过两个独立的 joomla 站点进行 Joomla 身份验证
【发布时间】:2013-01-30 20:49:57
【问题描述】:

我有两个 Joomla 2.5 网站,两个网站都是分开工作的。现在我想将登录用户从第一个网站的一个页面重定向到第二个网站的另一个页面。

我需要第二个网站来识别用户名和密码。 (我刚刚检查了两者的 md5-hex 密码是否可以一起使用)。 用户注册到两者,意味着在两个用户数据库中具有相同的用户名和密码。 我尝试使用一些 php 命令,如“HTTPResponse::redirect”和一些 joomla 组件来做到这一点,但它不起作用。

【问题讨论】:

    标签: php authentication redirect joomla


    【解决方案1】:

    我希望你可以这样工作。

    当用户登录第一个网站并从该网站登录时,您必须重定向到第二个。

    首先当用户登录您的第一个站点时,您应该保留该用户密码和用户名。 您将获得带有$user->name 对象的用户名,但您无法获得用于描述的密码,因此应将其保存在某个位置(在安全空间中)。然后将其获取凭据并以隐藏形式设置返回 url。

    然后将此隐藏表单的操作提交到第二个站点。如果该用户帐户存在于该 joomla 站点中,您可以登录并重定向到给定的返回 url。

    如果不是,它将不会登录到第二个站点。

    您可以使用获取用户详细信息

    $user = &JFactory::getUser();
    

    隐藏的表格应该是这样的

    The action should be second site full url.
    the $your_return_url should be second site url
    
      <form action="<?php echo JRoute::_('index.php?option=com_users&task=user.login'); ?>" method="post">
     <input type="text" tabindex="1" " value="<?php echo $user_name?>" id="username" name="username" />
    <input type="password"  value="<?php echo $password?>" id="password" name="password" />
     <input type="hidden" name="return" value="<?php echo base64_encode($your_return_url); ?>" /><?php echo JHtml::_('form.token'); ?>
        </form>
    

    根据操作,您可以将此表单提交到第二个 joomla 站点。 但是这里有一个主要的事情是 joomla 表单令牌如果第一个站点令牌在第二个 joomla 站点中接受,那么你的工作就完成了!否则你无法做到这一点。

    希望对你有所帮助..

    【讨论】:

    • 非常感谢,我尝试使用它,但它不起作用。最后我创建了一个自动提交表单的 javascript 函数和一个带有隐藏元素的表单,所以我读取了 joomla 用户名和密码,然后我通过表单自动发送它,无论如何感谢@Jobin Jose
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多