我正在集成自动登录系统与joomla和WHMCS。
我想要的是单独登录joomla和WHMCS.When我登录了joomla,自动我需要我的WHMCS系统应该登录和逆节。我已经通过了WHMCS,它有AuthAuto登录与'dologin.php‘文件。但它需要重定向到我的WHMCS后,我登录到我的joomla,我不需要。
甚至我也在api调用中使用了“validatelogin”操作。另外,我还迷上了“ClientLogin”,并给我发了一封电子邮件。当我通过joomla登录时,这个钩子就被调用了。但是我的WHMCS当我刷新时,我不会被登录。
$url = "http://myjoomlasiteurl/includes/api.php";
$username = "xxxxxx";
$password = "xxxxxxxxxx";
$postfields= array();
$postfields["username"] = $username;
$postfields["password"] = md5($password);
$postfields["accesskey"] = "xxxxx";
$postfields["action"] = "validatelogin";
$postfields["email"] = "user@domain.com";
$postfields["password2"] = "xxxxx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
if (($result= curl_exec($ch)) !== false) {
$data= format_result($result);
$_SESSION['uid'] = $data['userid'];
$_SESSION['upw'] = $data['passwordhash'];
}
curl_close($ch);在我的WHMCS钩子里。我所写的守则是:
function hook_client_logint($vars) {
ob_start();
var_dump($_SESSION);
$content= ob_get_contents();
@mail('myemailid,'User Login',$content);
ob_end_clean();
# Here i ma getting email after i logged in to my Joomla site.
session variable 'uid' and 'upw' are being set.
}
add_hook("ClientLogin",1,"hook_client_login");发布于 2012-11-21 01:24:04
不要将重定向用于登录,只需通过CURL进行访问,获取页面,检查HTTP是否为200。
你需要2个Joomla插件(authenticate,user)
你需要一个钩子3动作:
通过CURL对Joomla进行调用实际上是不容易的,因为有令牌。
但是您可以创建一个组件视图,在那里您可以提交带有信息的POST请求,在本例中是电子邮件和密码。
这可能会有帮助
https://stackoverflow.com/questions/11895786
复制相似问题