繁体   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