目前,我们提供了一个 登录示例(Login Sample) 来演示如何使用身份验证接口登录SDK。
在本示例中,你还可以启用原生的 使用Apple登录(SIWA) 功能,但你需要 Bundle标识符 和 ** 授权配置文件(provisioning profile)** 以启用该功能。之后会对其他需要的设置调整进行说明。默认情况下,该特性处于禁用状态。
本页面将以iOS的登录示例为例,教你如何使用标准登录流程和SIWA流程登录。本示例将用到 Xcode 11.3.1 和 iOS SDK 13.2 开发。
开始前的准备
确保在 Login/Settings/settings.json
中正确设置应用程序相关的值。若未设置,则SDK将无法正确运行。需要的设置如下所示:
- productId: 你的产品id
- sandboxId: 你的沙盒id
- deploymentId: 你的部署id
- clientId: 你的客户端id
- clientSecret: 你的客户端密钥
如果你还没有获得这些设置的值,请参阅开发者门户了解更多详情 。
你还需要额外配置一些Xcode设置:
-
选中 Login/Info.plist,然后导航到 URL类型 > 项目0 > URL方案 > 项目0(URL types > Item 0 > URL Schemes > Item 0)。这个值必须设置为
eos.clientId
,其中 客户端Id(clientId) 与json文件中的数据相同。这允许账号门户通过从网站获得的登录数据重新触发应用程序。 -
将
EOSSDK.framework
复制到 Login/Frameworks 文件夹。 -
你还需要在 签名和功能(Signing & Capabilities) 中设置一个Bundle标识符(Bundle Identifier),以便示例进行构建和签名。
通过Apple登录
Apple登录只能在 iOS 13+ 上实现。
在此示例中,Xcode需要一些额外设置来启用SIWA支持。
-
你的Bundle标识符需要在Apple开发者门户的 证书、标识符和描述文件(Certificates, Identifiers & Profiles) 中的 标识符(Identifiers) 中启用 通过Apple登录(Sign in with Apple) 功能。
-
请在项目的 签名和功能(Signing & Capabilities) 设置中,使用 +功能(+ Capability) 选项为你的应用程序添加 通过Apple登录(Sign in with Apple)。
-
在 构建设置(Build Settings) 中找到 Swift编译器-自定义标志(Swift Compiler - Custom Flags) > 生效的编译条件(Active Compilation Conditions),并在 调试(Debug) 和 发布(Release) 字段中添加
EOS_ENABLE_SIWA
。
登录
第一次启动应用程序时,你会在屏幕中看到一个登录按钮.如果你启用了SIWA,你还会看到下文所述的两个登录选项。
点击查看大图。
应用程序每次打开时,都会用上一次的登录凭证,以持久身份验证(persistent auth)的方式尝试自动登录。如果你之前没有登录过,持久身份验证就无法找到任何现有的凭证。
使用账号门户登录
当你按下 登录(Login) 按钮后,会启动一个安全会话,操作系统会提示你在浏览器中继续登录流程。这个提示窗口会告知你应用程序的名称以及将在浏览器中打开的目标域。
点击查看大图。
按下 继续(Continue) 后,会打开一个浏览器并显示Epic账号门户,然后提示你用Epic账号登录。
点击查看大图。
点击查看大图。
点击查看大图。
点击查看大图。
此流程完成后,你将回到应用程序,并且你的登录也将被确认。
点击查看大图。
接下来,你可以注销账号,或者终止应用并重新打开它,以便观察整个持久登录流程。
使用SIWA登录(通过Apple登录)
如果你在启用SIWA的情况下构建了示例,那么当你启动应用程序后,你会看到屏幕包含两个登录按钮。顶部按钮会引导你按照上文所述方式在账号门户中完成登录。如果按下 使用Apple登录(Sign in with Apple),则会开始SIWA流程登录。
点击查看大图。
当你按下 通过Apple登录(Sign in with Apple) 后,你将开始SIWA流程。如果这是你第一次使用SIWA,系统会询问你希望和应用程序分享哪些数据,比如你的名字、电子邮件地址(详情请参阅Apple官方文档)。在随后的登录流程中,系统会要求你确认身份。
点击查看大图。
当整个流程完成后,你会返回应用程序,此时你的连接登录(Connect login)将被确认。
点击查看大图。
接着,你可以选择 返回(Back),回到其他登录选项。