as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases

添加适用于JavaScript的Login with Amazon SDK

添加适用于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: absoluteposition: relative设置的元素内。如果必须将amazon-root元素放置在已定位的元素之内,其位置应靠近主体顶部,否则SDK可能无法正常运行。

  1. 在您的页面中,将以下代码添加到打开的<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>
    
  2. SDK加载完成后,将调用window.onAmazonLoginReady来进行初始化。在使用SDK之前,您必须调用amazon.Login.setClientId来传递客户端标识符。

  3. YOUR-CLIENT-ID替换为你在注册应用时生成的客户端ID。

  4. 将以下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>
    
  5. www.example.com替换为您的网站域名。

    用户登录并同意共享特定数据后,当前窗口将重定向到既定URI,授权响应将添加到查询字符串。URI必须使用HTTPS协议,且与当前窗口位于同一域。

如需了解有关上述方法的更多信息,请参阅适用于JavaScript的Login with Amazon SDK参考