Login with Amazon授权授予
Login with Amazon授权服务为您的网站和移动应用提供两种授权授予方式,以便验证用户身份和访问。客户个人资料。两种授予方式分别为授权码授予和隐式授予。
以下授权描述适用于HTTP请求和响应。移动SDK按照其独有的方式来封装调用和回调;不过,其总体流程并无差异。
授权码授予
在授权码授予中,用户通过单击链接(或按下按钮)(A)来转到亚马逊登录页面。登录之后,用户将收到请求来授权应用访问特定的个人资料数据(B),并重定向返回到应用。授权码作为查询参数(C)直接嵌入到重定向URI中。(此为授权码授予)。用户代理运行包含查询参数在内的URI。(此时,用户将看到自己已登录应用并正常继续。)
应用直接处理查询参数,并使用授权码直接向授权服务请求访问令牌(D)。授权码必须同客户端标识符和客户端密钥仅限应用知晓。这将阻止恶意软件拦截授权码以及模拟应用。
授权码、客户端标识符和客户端密钥全都验证完毕后,授权服务(E)将授予应用访问令牌和刷新令牌。应用可使用访问令牌从亚马逊访问客户个人资料 数据。访问令牌过期后,应用可使用刷新令牌获取新的访问令牌和新的刷新令牌。
隐式授予
在隐式授予中,用户通过单击链接(或按下按钮)(A)来转到亚马逊登录页面。登录之后,用户将收到请求来授权应用访问特定的个人资料数据(B),并重定向返回到应用。
如果用户已获得访问授权,访问令牌将作为URI片段(C)直接嵌入到重定向URI中。(此为。隐式授予)。用户代理(网页浏览器)将从重定向URI中拆分出包含访问令牌的URI片段,并允许URI (D)。(此时,用户将看到自己已登录客户端,且正常使用应用。)
客户端网站使用基于浏览器的脚本(如JavaScript)来检索访问令牌,向用户代理查询相应片段(E)。然后,脚本将访问令牌发送到客户端(F),或者直接使用访问令牌从亚马逊(G)检索客户个人资料数据。