2016-11-25 6 views
0

В настоящее время мы используем auto auth, и у нас есть способ, приведенный ниже, чтобы автоматически войти в систему, используя электронную почту, проблема в том, что у электронной почты есть plus sign он не будет автоматически входить в систему.Whmcs aut auth

/** 
* @param $email Clients Email Address to Login 
* @param string $goto is a url endpoint where you want to redirect the user 
*/ 
public static function autoLoginUser($email, $goto = 'index.php?m=dashboard') 
{ 
    global $CONFIG; 

    /** 
    * Define WHMCS url and AuthKey from confguration.php 
    */ 
    $whmcsurl = $CONFIG['SystemURL'] . "/dologin.php"; 
    $autoauthkey = "Our auth key is here"; //$autoauthkey from configuration.php 

    $timestamp = time(); //Get current timestamp 
    $hash = sha1($email . $timestamp . $autoauthkey); //Generate Hash 

    /** 
    * Generate AutoAuth URL & Redirect 
    */ 
    $url = $whmcsurl . "?email=$email&timestamp=$timestamp&hash=$hash&goto=" . urlencode($goto); 
    header("Location: $url"); 
    exit; 
} 

Кто-нибудь пробовал это раньше? Наличие обычного адреса электронной почты работает отлично, но по электронной почте, содержащему знак «плюс», он не будет автоматически регистрировать пользователя.

+0

не уверен, но попробуйте заменить + по электронной почте с% 2B в escape url, поскольку WHMCS создает пул из электронной почты, и это может быть проблема с кодировщиком. –

+0

HI @LukaSvalina Я пробовал это, но он не работал. Я опубликую, что работает по нашему делу. –

ответ

2

Я не знаю, почему она не была документирована в WHMCS, но работа вокруг мы управляем иметь это закодировать электронную почту как следующий код

/** 
* @param $email Clients Email Address to Login 
* @param string $goto is a url endpoint where you want to redirect the user 
*/ 
public static function autoLoginUser($email, $goto = 'index.php?m=dashboard') 
{ 
    global $CONFIG; 

    /** 
    * Define WHMCS url and AuthKey from confguration.php 
    */ 
    $whmcsurl = $CONFIG['SystemURL'] . "/dologin.php"; 
    $autoauthkey = "Our auth key is here"; //$autoauthkey from configuration.php 

    $timestamp = time(); //Get current timestamp 
    $hash = sha1($email . $timestamp . $autoauthkey); //Generate Hash 
    $email = 
    /** 
    * Generate AutoAuth URL & Redirect 
    */ 
    $url = $whmcsurl . "?email=".urlencode($email)."&timestamp=$timestamp&hash=$hash&goto=" . urlencode($goto); 
    header("Location: $url"); 
    exit; 
}