2013-05-20 1 views
1

я пытаюсь реализовать Disqus единого входа, но я не могу показаться, чтобы установить соединение, я создал тестовую страницу:Проблемы с Disqus единого входа, никакой связи не сделал

<?php 
define('DISQUS_SECRET_KEY', 'mykey'); 
define('DISQUS_PUBLIC_KEY', 'myotherkey'); 

$data = array(
    "username" => "Disqus Test", 
    "url" => "http://disqus.com", 
    "id" => "999", 
    "avatar" => "http://dl.dropbox.com/u/31679327/Screenshots/30v.png", 
    "email" => "[email protected]" 
); 

function dsq_hmacsha1($data, $key) { 
    $blocksize=64; 
    $hashfunc='sha1'; 
    if (strlen($key)>$blocksize) 
    $key=pack('H*', $hashfunc($key)); 
    $key=str_pad($key,$blocksize,chr(0x00)); 
    $ipad=str_repeat(chr(0x36),$blocksize); 
    $opad=str_repeat(chr(0x5c),$blocksize); 
    $hmac = pack('H*',$hashfunc(
    ($key^$opad).pack('H*',$hashfunc(
    ($key^$ipad).$data) 
    ) 
    ) 
    ); 
return bin2hex($hmac); 
} 

$message = base64_encode(json_encode($data)); 
$timestamp = time(); 
$hmac = dsq_hmacsha1($message . ' ' . $timestamp, DISQUS_SECRET_KEY); 
?> 

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Test Site</title> 
</head> 
<body> 

<div id="disqus_thread"></div> 

<script type="text/javascript"> 
var disqus_config = function() { 
this.page.remote_auth_s3 = "<?php echo "$message $hmac $timestamp"; ?>"; 
this.page.api_key = "<?php echo DISQUS_PUBLIC_KEY; ?>"; 
} 

/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ 
var disqus_shortname = 'funkydic'; // required: replace example with your forum shortname 

/* * * DON'T EDIT BELOW THIS LINE * * */ 
(function() { 
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js'; 
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
})(); 
</script> 
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> 
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a> 

<?php echo "$message $hmac $timestamp"; ?> 
</body> 
</html> 

Я декодирует полезная нагрузка, и это выглядит так, как должно, проблема, кажется, лежит в соединении, даже если все выглядит так, как будто она была настроена так, как должна.

Любая помощь apriciated

ответ

0

Это выглядит как ваш фактический код хорошо, это почти наверняка либо ошибка конфигурации приложения или неправильно место Переменная JavaScript.

Первый шаг, чтобы проверить этот документ, который идет по самым общим вопросам: http://help.disqus.com/customer/portal/articles/1148640

Особенно проверьте, чтобы убедиться, что заголовок Х-Disqus-Remote-Auth делает это в запросе.

Если вы все вышли, опубликуйте полный исходный код страницы, включая ваш открытый ключ (он работает только в указанном вами домене), и мы можем видеть, что что-то еще не так.