コード例 #1
0
function signJsConnect($Data, $ClientID, $Secret, $HashType, $ReturnData = FALSE)
{
    $Data = array_change_key_case($Data);
    ksort($Data);
    foreach ($Data as $Key => $Value) {
        if ($Value === NULL) {
            $Data[$Key] = '';
        }
    }
    $String = http_build_query($Data, NULL, '&');
    //   echo "$String\n";
    $Signature = jsHash($String . $Secret, $HashType);
    if ($ReturnData) {
        $Data['client_id'] = $ClientID;
        $Data['signature'] = $Signature;
        //      $Data['string'] = $String;
        return $Data;
    } else {
        return $Signature;
    }
}
コード例 #2
0
 public static function connectUrl($Provider, $Secure = FALSE, $Callback = TRUE)
 {
     if (!is_array($Provider)) {
         $Provider = self::getProvider($Provider);
     }
     if (!is_array($Provider)) {
         return FALSE;
     }
     $Url = $Provider['AuthenticateUrl'];
     $Query = array('client_id' => $Provider['AuthenticationKey']);
     if ($Secure) {
         include_once dirname(__FILE__) . '/functions.jsconnect.php';
         $Query['timestamp'] = jsTimestamp();
         $Query['signature'] = jsHash($Query['timestamp'] . $Provider['AssociationSecret'], GetValue('HashType', $Provider));
     }
     if ($Target = Gdn::Request()->Get('Target')) {
         $Query['Target'] = $Target;
     } else {
         $Query['Target'] = '/' . ltrim(Gdn::Request()->Path(), '/');
     }
     if (StringBeginsWith($Query['Target'], '/entry/signin')) {
         $Query['Target'] = '/';
     }
     $Result = $Url . (strpos($Url, '?') === FALSE ? '?' : '&') . http_build_query($Query);
     if ($Callback) {
         $Result .= '&callback=?';
     }
     return $Result;
 }