繁体   English   中英

Joomla和WHMCS自动登录

[英]Joomla and WHMCS Auto Login

我正在将自动登录系统与joomla和WHMCS集成在一起。

我想要的是joomla和WHMCS的单一登录。当我登录joomla时,自动需要WHMCS系统登录,反之亦然。 我已经通过了WHMCS API,它具有使用'dologin.php'文件的AuthAuto登录。 但是在我登录到我的joomla之后,它需要重定向到我的WHMCS,这是我不需要的。

甚至我在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");

不要使用重定向进行登录,只需通过CURL进行访问,然后将页面的HTTP响应检查为200

您需要2个Joomla插件( authenticate,user

您需要执行3个操作:

  • addClient
  • 创建Joomla用户
  • ClientLogin-拨打电话以登录Joomla用户
  • ClientLogout-拨打电话以注销Joomla用户
  • ClientChangePassword-进行调用以将密码更新为Joomla用户

由于令牌的原因,通过CURL进行对Joomla的调用实际上并不容易。

但是您可以创建一个组件视图,然后可以在其中提交带有信息的POST请求,在这种情况下为电子邮件和密码

这可能会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM