iOS应用中的客户体验
您将通过本节了解客户在iOS应用中使用Login with Amazon的登录流程体验。适用于iOS的Login with Amazon SDK负责处理整个登录流程,包括登录、获取客户同意、共享个人资料信息(如有请求)以及将客户最终重定向返回您的iOS应用。
步骤1: Login with Amazon按钮
客户在您的iOS应用单击Login with Amazon按钮时将启动登录流程。我们建议您将这些品牌按钮放置在应用的登录和注册界面。您也可以在应用标头或脚标中放置Login with Amazon按钮,以便客户使用其亚马逊凭证快速登录您的应用。
更多有关Login with Amazon按钮实现的信息,请参阅我们的iOS入门指南。
步骤2: 登录流程
适用于iOS的Login with Amazon SDK将自动向您的客户提供以下其中一种登录流程:
- 使用亚马逊移动购物应用的单点登录(SSO)流程(参见下方注释):适用于客户在iOS设备登录亚马逊移动购物应用的情况
- 使用嵌入式网页视图的单点登录(SSO)流程:适用于iOS 11及更高版本的客户(适用于LWA 3.1.0及更高版本)
- Safari视图控制器(SVC)流程:适用于iOS 9及更高版本但不登录亚马逊移动购物应用的客户
- 系统浏览器流程:适用于iOS 8及更低版本且不登录亚马逊移动购物应用的客户
使用亚马逊移动购物应用进行单点登录流程
如果您的客户在iOS设备单击Login with Amazon按钮时已经登录到亚马逊移动购物应用,将不会出现要求他们输入亚马逊账户凭证的提示。反之,适用于iOS的Login with Amazon SDK将对客户进行身份验证以登录亚马逊移动购物应用,并使用同一账户信息登录到您的iOS应用。客户将只需提供一次性同意便可与您的应用共享个人资料信息(如果您的应用正在请求此信息)。
在此流程中,用户会访问您的iOS应用(A)。用户单击Login with Amazon按钮(B),然后重定向到亚马逊移动购物应用中的安全页面,通过请求用户同意(C)来允许您的应用访问用户个人资料数据。如果用户已同意,或者您的应用请求范围无需经过用户同意,则会跳过此步骤。然后,亚马逊会将用户从进行重定向。返回到应用(D)的同意界面。
使用嵌入式Web视图(iOS 11及更高版本)进行单点登录
如果您的客户使用的是iOS 11或更高版本的设备,Login with Amazon将为他们提供安全的亚马逊界面,以输入其亚马逊账户凭证登录到您的应用。您的应用中将显示安全的登录界面,如果客户设备为iOS 11,则该界面使用SFAuthenticationSession;如果客户设备为iOS 12及更高版本,则该界面使用ASWebAuthenticationSession。成功登录后,客户需要提供一次性同意来与您的应用共享个人资料信息(如果您的应用正在请求此信息)。这两个身份验证会话在以下SVC流程中的功能非常相似。
SSO是一种理想的登录方式,不需要客户启动其他应用或浏览器(在流程中离开您的应用)便可进行登录。使用亚马逊移动购物应用代替SSO是源于程序重定向到其他应用可能存在安全风险。此外,SSO不需要您构建自己的应用内网页视图便能处理内容(由于原生网页视图会控制客户输入的敏感信息,这种方式不仅耗时,还可能存在安全风险)。
在此流程中,用户会访问您的iOS应用(A)。用户单击Login with Amazon按钮后(B),将重定向到应用内嵌入式网页视图的登录界面(C)。输入亚马逊账户凭证后,网页视图将进行更新并请求用户同意以允许您的应用访问其个人资料数据(D)。如果用户已同意,或者您的应用请求范围无需经过用户同意,则会显示确认页面。然后亚马逊将关闭网页视图,以便用户在您的应用中继续(E)。
Safari视图控制器流程(iOS 9及以上)
如果您的客户使用的是iOS 9或更高版本的设备,Login with Amazon将为他们提供安全的亚马逊界面,以输入其亚马逊账户凭证登录到您的应用。如果您的客户使用的是iOS 9或更高版本的设备,Safari视图控制器(SVC)将在您的应用中显示安全的登录界面。成功登录后,客户需要提供一次性同意来与您的应用共享个人资料信息(如果您的应用正在请求此信息)。
苹果公司在iOS 9中引入了SVC,以便应用能够在“微型”的应用内Safari中启动外部网页内容。SVC是一种理想的登录方式,不需要客户启动其他应用或浏览器(在流程中离开您的应用)便可进行登录。此外,SVC不需要您构建自己的应用内网页视图便能处理内容(由于原生网页视图会控制客户输入的敏感信息,这种方式不仅耗时,还可能存在安全风险)。
在SVC流程中,用户会访问您的iOS应用(A)。用户单击Login with Amazon按钮后(B),将重定向到应用内SVC窗口的登录界面(C)。输入亚马逊账户凭证后,SVC窗口将进行更新并请求用户同意以允许您的应用访问其个人资料数据(D)。如果用户已同意,或者您的应用请求范围无需经过用户同意,则会跳过此步骤。然后亚马逊将关闭SVC窗口,以便用户在您的应用中继续(E)。
SVC流程的单点登录(SSO)仅适用于iOS 9 + 10。苹果公司已在iOS 11及更高版本中禁止Safari视图控制器与Safari共享Cookie。这意味着使用iOS 11及更高版本的客户将多次登录到不同应用,而不是仅仅一次。要启用对iOS 11及更高版本的SSO支持,请更新到Login with Amazon 3.1.0或更高版本。
系统浏览器流程(iOS 8及更低版本)
如果您的客户未在设备中安装亚马逊移动购物应用,或者没有登录到该应用,Login with Amazon会将您的客户重定向到安全的亚马逊界面,以便客户输入亚马逊账户凭证登录到您的应用。如果您的客户使用的是iOS 8或更低版本的设备,系统浏览器(通常为Safari)将显示安全的登录界面。成功登录后,客户需要提供一次性同意来与您的应用共享个人资料信息(如果您的应用正在请求此信息)。
在系统浏览器流程,用户会访问您的iOS应用(A)。用户单击Login with Amazon按钮(B)后将离开您的应用,重定向到系统浏览器(C)中安全的亚马逊登录界面。输入亚马逊账户凭证后,系统浏览器将打开另一个安全的亚马逊页面,通过请求用户同意来允许您的应用访问其个人资料数据(D)。如果用户已同意,或者您的应用请求范围无需经过用户同意,则会跳过此步骤。然后,亚马逊会带领用户离开浏览器窗口,重定向返回到您的应用(E)。
步骤3: 登录界面
在SVC和系统浏览器流程中,亚马逊客户单击Login with Amazon按钮后,会立即显示登录界面。
亚马逊登录界面包含以下内容:
- 您在注册Login with Amazon时选择的应用名称。
- Forgot your password?(忘记密码)链接,客户可以单击此链接来重置Amazon.com密码。
- 客户用来输入Amazon.com账户凭证的字段
- Show password(显示密码)复选框,客户选择后将显示正在键入的密码。默认情况下,将显示密码。
- Keep me signed in(记住登录状态)复选框,客户选择后,下次访问您的应用并使用Login with Amazon时,将跳过登录和同意界面。用户下次访问您的应用时,将显示确认界面(如下所示),用户可以单击继续来使用亚马逊账户凭证登录到您的应用。
- 安全的Sign in(登录)按钮,单击即代表客户已准备就绪,将由亚马逊使用账户凭证对其进行身份验证。如上文登录流程部分所述,客户单击Sign in后,将重定向到同意界面或您的应用。
- Create a new Amazon account(创建您的Amazon账户)按钮,客户单击后可以创建一个新帐户来登录您的应用。
- 使用Login with Amazon的好处,以及了解更多的链接,客户单击后可以了解更多详情。
- 关于使用Login with Amazon的使用条款和隐私声明链接。
步骤4: 同意界面
如果您的应用请求访问客户个人资料信息(如客户名称、电子邮件地址或邮政编码),客户将会通过同意界面获知这一点。
亚马逊同意界面包含以下内容:
- 显示客户名称的下拉列表,位于页面右上角。客户单击下拉箭头可以选择使用另一个亚马逊账户进行身份验证。
注意: SSO流程不显示此链接。SSO流程自动使用的亚马逊账户已经由亚马逊移动购物应用进行身份验证。
- 您在注册Login with Amazon时提供的应用名称和标志。
- 您的应用每次请求的权限列表。
- I agree(我同意)按钮,客户单击即表示同意分享信息。如上文登录流程部分所述,客户单击I agree后,将重定向到您的应用。
注意: 客户只需为每台设备、每个应用提供一次同意许可。客户同意与您的iOS应用共享信息后,将不会再次遇到询问,除非他们有意将权限从您的账户链接中移除。
- Cancel(取消)按钮,客户单击即表示不同意共享信息。单击Cancel,客户将以未经身份验证的状态返回到您的应用。
- Your Account链接,客户单击后可以删除已授权给应用的Login with Amazon权限。
- 您在注册Login with Amazon时提供的应用隐私政策链接。
步骤5: 成功!
客户完成登录流程后将自动重定向返回您的iOS应用。