Sign in with Apple已经很久了,之前只是看了一堆的文章理论,今天就实实在在的操作了一次,为后面项目中使用埋下基础。这篇文章会从头到尾描述清楚从客户端到服务器如何一步步的实现苹果登录。
1.几个官方资源
整体的流程如下:
交互流程
2.苹果后台操作
无论新建AppID还是老的AppID都需要配置支持Sign in with Apple
AppID Sign in with Apple
添加支持后,需要更新确认当前应用的描述文件支持Sign in with Apple
确认描述文件
项目设置支持Sign in with Apple
项目内设置支持
在Apple Developer Center添加供服务端使用的Keys
新建Keys
配置要使用Sign in with Apple的AppID
配置Sign in with Apple
生成完成后可以看到带有Key ID(服务端要用到)的一个key,只能下载一次!!!
生成Key
下载后的p8文件,后面验证的时候会用到
p8文件
3.代码开发(含服务端验证)
a.iOS端
系统提供了ASAuthorizationAppleIDButton的按钮可以直接使用,但也并没有强制使用,如果用户自定义切图的话,和官方提供的 样式最好保持相近。
//苹果登录的方法
-(void)loginWithAppleID
{
if (@available(iOS 13.0, *)) {
ASAuthorizationAppleIDProvider *provider = [[ASAuthorizationAppleIDProvider alloc] init];
ASAuthorizationAppleIDRequest *request = [provider createRequest];
request.requestedScopes = @[ASAuthorizationScopeFullName, ASAuthorizationScopeEmail];