我有两个 Joomla 2.5 网站,都分开工作。现在我想将登录用户从第一个网站的一个页面重定向到第二个网站的另一个页面。
我需要第二个网站来识别用户名和密码。(我刚刚检查了两者的 md5-hex 密码是否可以一起使用)。用户注册到两者,意味着在两个用户数据库中具有相同的用户名和密码。我尝试使用一些 php 命令,如“HTTPResponse::redirect”和一些 joomla 组件来做到这一点,但它不起作用。
我有两个 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 站点中接受,那么你的工作就完成了!否则你无法做到这一点。
希望这可以帮助你..