苹果登录(Sign In with Apple)

Sign In with Apple(苹果官方文档):iOS 13 新增功能

背景:审核备注:App审核文档,所以在iOS13以后用到第三方登录的App,尽量要加入苹果登录,否则审核有可能被拒

Sign In with Apple will be available for beta testing this summer. It will be required as an option for users in apps that support third-party sign-in when it is commercially available later this year.

也就是说,当 Sign In with Apple 服务正式上线以后,所有已接入其它第三方登录的 App,Sign In with Apple 将被要求作为一种登录选择,否则有可能就不给过。

前期准备:

在苹果后台打开 Sign In with Apple 选项,重新生成 profile 配置文件

Xcode— Sign&Capabilities 中点击 Capability 选择 Sign In with Apple 选项

开发 Sign In with Apple 流程:

1、添加 Sign In with Apple 按钮,设置 ASAuthorizationAppleIDButton 相关布局,也可自定义按钮样式

2、

处理授权

已经使用 Sign In with Apple 登录过 app的用户,如果设备中存在 iCloud Keychain 凭证 或者 AppleID 凭证,提示用户直接使用 TouchID 或 FaceID 登录

3、获取授权码 

提供用于展示授权页面的window

func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {}

授权成功

func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {}

授权失败

func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {}

授权成功回调,

UserID:苹果用户唯一标识符,该值在同一个开发者账号下的所有App下是一样的,可以把这个关联上后台系统的账号体系,绑定起来

Verification Data:(identity touch\code)——(identityTokenStr/authorizationCodeStr)验证数据,用于传给后台服务器,然后服务器调用苹果 API 去校验授权码,如果验证成功,可以根据 userIdentifier 判断账号是否已存在,若存在,则返回自己账号系统的登录态、若不存在,则创建新的账号,并返回对应的登录状态给 App

Account information:name、verified email 苹果用户信息,包括全名、邮箱等。注意:如果玩家登录时拒绝提供真实的邮箱账号,苹果会生成虚拟的邮箱账号

总结:使用范围:iOS 13 以上 使用方式:和第三方微信登录一样,获取到服务器验证需要使用的参数——Verification Data 传输给服务端,用来判断用户的状态,userid 来作为苹果用户的唯一标识符,用来和服务端的账户体系绑定关联

你可能感兴趣的:(苹果登录(Sign In with Apple))