在两个独立的Joomla站点上进行Joomla身份验证


Joomla authentication over two separate joomla sites

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

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

我希望你能这样工作。

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

首先当用户登录您的第一个站点时,您应该保留该用户密码和用户名。您将获得带有$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 站点中接受,那么您的工作就完成了!否则,您将无法实现此目标。

希望这对您有所帮助。