快速集成Apple三方登录

快速集成Apple三方登录

多个项目中使用到第三方登录,所以归纳总结如下。

1、 SignInWithAppleID

真正实现3句代码集成Apple登录

关于SignInWithAppleID在开发者网站的配置晚上很多,随便一搜都是。这里只是集成的介绍:

Git地址 : https://github.com/doudoudie/DDSignIn/

1、 苹果有给我们内置一个登录请求的按钮 ASAuthorizationAppleIDButton , 所有简单继承了下苹果的内置按钮, 实现了其初始化以及Block回调。这样就可以几行代码就完成集成。 把想要的结果回调到自己的工程。

 DCAppleIDButton *button = [[DCAppleIDButton alloc] initDCAppleIDButtonWithFrame:CGRectMake(0, 0, 64, 64) actionBlock:
  ^(BOOL   success, NSDictionary * _Nullable authorDic) {
        
 }];
 button.center = self.view.center;
 [self.view addSubview:button];

这里回调返回的 authorDic 就是Apple API回调给我们的一些参数。

2、如果您不想使用Apple内置的按钮,需要个性化定制。 那么你同样使用以下几行代码, 快速集成。

 self.signInHandle = [[DCSignInWithAppleHandle alloc] init];
 [self.signInHandle postAuthorizationRequests:^(BOOL success, NSDictionary * _Nullable authorDic) {
        
 }];

这里回调返回的 authorDic 同上。

3、为了登录的安全性和有效性,防止一些异常操作和异常情况。苹果还提供了检查登录状态的API, 具体使用代码如下:

[self.signInHandle checkCredentialStateWithUserID:@"userID" completion:^(BOOL success,ASAuthorizationAppleIDProviderCredentialState credentialState) {
   
}];

这里的入参 userID 其实就是登录回调authorDic里的userID, 这个也困惑了我很久, 网上很多人说什么Keychain里获取的userIdentifier。 我不知道Keychain里的能不能用(没有验证过), 但我authorDic回调的userID一定是可以的。单前提是得用真机(iOS13以上),我模拟器搞了半天一直检查失败。明明在模拟器上登录都成功了 ,可这个检查一直是失败的。 换成真机,一把就成功。

以上就是SignInWithApple的集成方式。

你可能感兴趣的:(快速集成Apple三方登录)