添加适用于JavaScript的Login with Amazon SDK
您可以使用Login with Amazon提供的JavaScript SDK来获取访问令牌和检索客户个人资料。适用于JavaScript的Login with Amazon SDK将处理在集成Login with Amazon与您的网站时遇到的所有难题。SDK必须先从亚马逊内容交付网络自行加载,在这之后您才能作出访问授权调用或者检索个人资料。
适用于JavaScript的Login with Amazon SDK必须使用此页面中的amazon-root
元素。amazon-root
元素不得使用display: none
或者visibility: hidden
进行隐藏,否则SDK的部分功能将无法在Internet Explorer中正常运行。
SDK在amazon-root
中插入的元素将位于页面主体或顶部元素的相近位置。最好不要将amazon-root
元素放在包含position: absolute
或position: relative
设置的元素内。如果必须将amazon-root
元素放置在已定位的元素之内,其位置应靠近主体顶部,否则SDK可能无法正常运行。
-
在您的页面中,将以下代码添加到打开的
<body>
之后,以加载适用于JavaScript的Login with Amazon SDK,并将amazon-root
标签添加到您的页面:<div id="amazon-root"></div> <script type="text/javascript"> window.onAmazonLoginReady = function() { amazon.Login.setClientId('YOUR-CLIENT-ID'); }; (function(d) { var a = d.createElement('script'); a.type = 'text/javascript'; a.async = true; a.id = 'amazon-login-sdk'; a.src = 'https://assets.loginwithamazon.com/sdk/na/login1.js'; d.getElementById('amazon-root').appendChild(a); })(document); </script>
-
SDK加载完成后,将调用
window.onAmazonLoginReady
来进行初始化。在使用SDK之前,您必须调用amazon.Login.setClientId
来传递客户端标识符。 -
将
YOUR-CLIENT-ID
替换为你在注册应用时生成的客户端ID。 -
将以下JavaScript添加到网站的Login with Amazon按钮之后,用以返回
AuthorizeRequest
对象。请求完成后,该对象将包含具体说明响应情况的属性详情(如访问令牌或授权码,您可以用来获取客户个人资料):<script type="text/javascript"> document.getElementById('LoginWithAmazon').onclick = function() { options = {} options.scope = 'profile'; options.scope_data = { 'profile' : {'essential': false} }; amazon.Login.authorize(options, 'https://www.example.com/handle_login.php'); return false; }; </script>
-
将
www.example.com
替换为您的网站域名。提示: 默认情况下,SDK将以弹出窗口的形式显示登录界面。您可以将options
参数中的popup
属性设置为false
,从而将客户重定向至新的登录界面。原生iOS应用不支持弹出窗口。如果您的客户在原生iOS应用中使用Login with Amazon,我们建议您提供重定向的登录体验。查看适用于JavaScript的Login with Amazon SDK参考指南,了解有关如何自定义options
参数的信息。用户登录并同意共享特定数据后,当前窗口将重定向到既定URI,授权响应将添加到查询字符串。URI必须使用HTTPS协议,且与当前窗口位于同一域。
如需了解有关上述方法的更多信息,请参阅适用于JavaScript的Login with Amazon SDK参考。