簡體   English   中英

使用Amazon登錄時出現問題

[英]Trouble using Login with Amazon

我一直試圖將“使用亞馬遜登錄”按鈕集成到我的網站中,但一直失敗。 我一直在通過以下網站遵循AWS指導: http : //login.amazon.com/website 我已經在目錄中創建了一個單獨的login.html文件和handle_login.php文件。

login.html

<a href="#" id="LoginWithAmazon">
   <img border="0" alt="Login with Amazon"
src="https://images-na.ssl-images-amazon.com/images/G/01/lwa/btnLWA_gold_156x32.png"
width="156" height="32" />
</a>


<script type="text/javascript">

  document.getElementById('LoginWithAmazon').onclick = function() {
    options = { scope : 'profile' };
    amazon.Login.authorize(options,     'http://aws2.paperplane.io/handle_login.php');
return false;
  };

</script>


<div id="amazon-root"></div>
<script type="text/javascript">

  window.onAmazonLoginReady = function() {
    amazon.Login.setClientId('amzn1.application-oa2-client.126f2098b3a74619a685a56af94196dc');
  };
  (function(d) {
    var a = d.createElement('script'); a.type = 'text/javascript';
    a.async = true; a.id = 'amazon-login-sdk';
    a.src = 'https://api-cdn.amazon.com/sdk/login1.js';
    d.getElementById('amazon-root').appendChild(a);
  })(document);

</script>

handle_login.php: //驗證訪問令牌是否屬於我們$ c = curl_init(' https://api.amazon.com/auth/o2/tokeninfo?access_token='。urlencode ($ _ REQUEST ['access_token']) ); curl_setopt($ c,CURLOPT_RETURNTRANSFER,true);

$r = curl_exec($c);
curl_close($c);
$d = json_decode($r);

if ($d->aud != 'amzn1.application-oa2-    client.126f2098b3a74619a685a56af94196dc') {
  // the access token does not belong to us
  header('HTTP/1.1 404 Not Found');
  echo 'Page not found';
  exit;
}

// exchange the access token for user profile
$c = curl_init('https://api.amazon.com/user/profile');
curl_setopt($c, CURLOPT_HTTPHEADER, array('Authorization: bearer ' .     $_REQUEST['access_token']));
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);

$r = curl_exec($c);
curl_close($c);
$d = json_decode($r);

echo sprintf('%s %s %s', $d->name, $d->email, $d->user_id);

任何幫助將非常感激!!

Paperplane.io在其托管上不支持PHP文件:

我想澄清一點:Paperplane.io不支持任何服務器端腳本語言,例如PHP。

http://blog.paperplane.io/2013/09/18/using-wget-to-make-a-non-static-site-static.html

因為您沒有在說什么錯誤,也沒有描述它是如何失敗的,所以可能有很多錯誤。 這是一般的調試指南。

您選擇了錯誤的Cloud 9模板

在Cloud9上,HTML和PHP / Apache / MySQL模板都將提供.php頁面, 但是只有PHP / Apache / MySQL模板啟用了cURL handle_login頁面中進行的后端調用需要cURL。 確保選擇正確的模板。

您需要指定允許的來源

在應用https://[workspace name]-[your username].c9users.io/[filename]設置應用程序時,頁面的URL類似於https://[workspace name]-[your username].c9users.io/[filename] 設置名稱,描述和隱私URL后,必須設置Web設置。

在此處輸入圖片說明

我知道這兩個字段都說是可選的,但是根據您如何設置授權流程 ,它們是可選的

您需要在此處提供有效的來源。 那不是確切的頁面,而是根URL(即https://www.amazon.com是許多亞馬遜購物頁面的根URL)。

您是否填寫了樣本中正確的數據?

您需要在兩個文件中將憑據更改為您的 Client ID 另外,在上面粘貼的內容中,ID的中間有一些空格,因此可能是一個問題。

確保返回URL實際上指向同一域上的handle_login

amazon.Login.authorize(options,'https://[workspace name]-[your username].c9users.io/handle_login.php');

希望有幫助

如果確保所有這些都正確,則運行演示腳本應該沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM