![](/img/trans.png)
[英]Manage users on my website using OpenID, Social Login and Amazon Cognito
[英]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
因為您沒有在說什么錯誤,也沒有描述它是如何失敗的,所以可能有很多錯誤。 這是一般的調試指南。
在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.