ShareSDK 苹果登录实现
描述
根据 苹果审核 指南:如果app专门使用第三方或社交登录服务(例如微信登录,QQ登录,Facebook登录,Google登录,Twitter登录等)来对其进行设置或验证这个app的用户主账户,则该app必须同时提供“通过Apple登录”作为等效选项,用户的主账户时指在app中建立的,用于标识身份,登录和访问功能和相关服务的账户。
在以下情况下,不要求提供“通过 Apple 登录”选项:
- 您的 app 仅使用公司自有的帐户设置和登录系统。
- 您的 app 是一款教育、企业或商务 app,要求用户使用现有的教育或企业帐户登录。
- 您的 app 使用政府或行业支持的公民身份系统或电子身份证来鉴定用户身份。
- 您的 app 是特定第三方服务的客户端,用户需要使用他们的邮件、社交媒体或其他第三方帐户直接登录才能访问内容。
按钮要求
苹果会提供一个推荐的按钮,如上图,你也可以自定义一个按钮,但必须符合苹果的规范:样式规范官方文档。
集成
ShareSDK从4.3.4版本开始支持苹果登录,将苹果返回的数据全部返回给用户。在使用ShareSDK提供的苹果登录功能后,还将提供一个可以监听苹果登录状态变化的功能,在登录状态被注销时可以实时检测。可以参考demo例子,在demo中的体现为: 在用户登录后,进设置界面(可以在另一台设备上操作)删除该app登录权限,则app能实时接收登录账号失效的状态(重新启动需要在进入前台后才能获取),从而使app更安全。
下载SDK
登录我们的 官网,进行下载,需要苹果登录,请勾选。
导入SDK
将下载的SDK导入到项目里,并添加依赖库
AuthenticationServices.framework
项目配置
证书开通Sign In with Apple选项,并且在Xcode的项目里配置
代码实现
(自己可以打印返回的信息,需要什么可以根据key去获取)
/**授权@param platformType 平台类型@param settings 授权设置,接受scopes属性设置,如新浪微博关注官方微博:@{@"scopes" : @[@"follow_app_official_microblog"]},类似“follow_app_official_microblog”这些字段是各个社交平台提供的。QQ平台如设置二维码授权,添加字段为QQAuthType:@{@"QQAuthType":@1}, 0为网页账号密码登录授权@param stateChangedHandler 授权状态变更回调处理@return 会话id*/
+ (SSDKSession *)authorize:(SSDKPlatformType)platformTypesettings:(NSDictionary *)settingsonStateChanged:(SSDKAuthorizeStateChangedHandler)stateChangedHandler;
示例代码
[ShareSDK authorize:SSDKPlatformTypeAppleAccount settings:nil onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {if (state == SSDKResponseStateSuccess){ NSLog(@"rawData---%@",user.rawData);NSLog(@"credential--%@",[user.credential rawData]);}else{NSLog(@"%@",error.userInfo);}
}];
登录状态监听
(根据自己的需求可加可不加)
/**监听apple登录状态@param object 添加监听的对象,在对象销毁时移除监听
@param isFirstAddCallBack 第一次添加时就回调当前状态
@param handler 返回apple登录状态
*/
+ (void)addObserve:(nullable id)object isFirstAddCallBack:(BOOL)isFirstAddCallBack
forAppleAccountLoginStateHandler:(void (^) (SSDKAppleAccountState state, SSDKUser *user, NSError *error))handler;
示例代码
[AppleAccountConnector addObserve:nil isFirstAddCallBack:YES forAppleAccountLoginStateHandler:^(SSDKAppleAccountState state, SSDKUser * _Nonnull user, NSError * _Nonnull error) {if (state != SSDKAppleAccountStateAuthorized){}else{if (user) {NSLog(@"------%@", user.rawData);}}
}];
点击登录按钮发起流程如下:
i. 第一次登陆
可以输入姓名、邮箱,之后,通过输入密码、指纹、faceID等登录,在返回时,返回user、token、姓名、邮箱等信息。
ii. 第二次登陆
无需输入信息,直接通过输入密码、指纹、faceID等登录,但此时只能获取到用户的user及token信息。
iii.退出登录
在"设置->账户->密码与安全性->使用您的apple ID 的 App"中删除此应用的user记录。此时,如果再打开app进行苹果登录的话需要从第一步开始。否则只要登陆过,不论在任何设备用同一个appleID登录的话都只显示步骤二的界面。
ShareSDK 苹果登录实现相关推荐
- ios 登录 java 后台,IOS苹果登录sign in with apple后端校验
IOS苹果登录sign in with apple后端校验 最近新开发的app在IOS平台app store connent提审的时候,被拒了,原因是app上如果有接第三方登陆(比如微信,微博,fac ...
- Java Apple_GitHub - izhaorui/AppleLogin-java: 苹果登录 Sign in with Apple 服务端校验
APP端苹果登录java后端校验 主要校验苹果授权登录token 是否正确 主要方法 public RSAPublicKeySpec build(final String n, final Strin ...
- 全网最佳,第三方登录系列——苹果登录
梳理一下苹果登录的逻辑, 这一篇是Kotlin版本的,Kotlin的代码语义比较明确,和Java兼容, 同样的方法都可以在Java中找到. 之后我会整理一篇Java版本和Go版本的 apple登录有两 ...
- Uniapp苹果登录sign in Apple
Uniapp苹果登录sign in Apple 前提:软件内,如果已经实现第三方登录,必须也有sign in Apple功能,否则审核会不通过 准备工作:uniapp自带sign in Apple必须 ...
- 【iOS】苹果登录Sign in with Apple
在iOS13中,如果苹果开发者提供任何其他第三方登录,就必须提供"苹果登录"选项.也就是说,如果软件要求"微信登录"或是"QQ登录"时,必须 ...
- IONIC4 苹果登录-Sign In With Apple Id
最近上架APP被苹果拒绝,理由是使用第三方登录需加上苹果登录,否则不给上架,所以在这分享一下ionic4的苹果登录 首先安装cordova插件,获取系统版本插件 ionic cordova plugi ...
- ios 自架验证服务器,iOS 13-Sign In with Apple(苹果登录)APP+后端验证
关于Sign In with Apple的介绍就不讲了,直接进入正题吧! Certificates,IDs & Profiels->Keys->+号 1585892549402.j ...
- iOS 集成苹果登录及苹果图标的制作要求
前言 如果要上架的应用集成了三方登录,那么在审核时,苹果会强制要求应用也要集成苹果登录.如果应用没有集成一般情况下都会被审核团队给打回来. 苹果集成登录 首先,你需要在开发者中心,找到你的应用,勾选上 ...
- swift 苹果登录
苹果登录项目中继承第三方登录时,需增加上苹果登录即可上架苹果登录需要iOS系统 13以上支持详细的内容阅读苹果官方的网址url:https://developer.apple.com/document ...
最新文章
- 使用acme.sh撸一个免费且自动更新的HTTPS证书
- STM32F407之搭建工程
- POJ--3268--Silver Cow Party【SPFA+邻接表】
- ArcGIS时态数据应用——动态展示3个月内犯罪案件数量变化
- Lodash 中文文档 (v3.10.1) - “Number” 方法
- 犀牛书——CHAP8:函数
- 键盘视频鼠标(KVM)切换器基础知识
- 计算机控制系统——数字控制器设计之模拟控制器的离散化(Chapter 5)
- 通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)
- mysql start with_mysql 实现 start with
- 灯神动态规划(Dynamic Programing)学习笔记 打劫问题 凑整问题 背包问题 例题+原理+源码超详细讲解
- heka 0.11.0源码分析--主要启动流程分析
- 探索 Sa-Token (一) SpringBoot 集成 Sa-Token
- 区块链与金融IT“联姻”的思路和方案
- JavaScript——问卷星自动填写
- 数据标准和数据规范到底有什么区别???
- Labview和西门子PLC smart200 OPC通讯仪器串口通讯
- 文件属性修改器(C#)
- 日照python培训_日照市学习it课程
- 想离职,我们需要做什么