在 iOS13 中,如果 App 提供第三方登录,就必须添加 苹果登录 Sign in with Apple 选项,并要求所有开发者于 2020年4月之前 完成现有应用的更新,否则审核不给通过。

iOS 苹果授权登录(Sign in with Apple)系列之Apple Developer配置篇

iOS 苹果授权登录(Sign in with Apple)系列之原生篇

iOS 苹果授权登录(Sign in with Apple)系列之uniapp篇

iOS 苹果授权登录(Sign in with Apple)系列之服务端篇

例子是基于 PHP 的 Laravel 框架进行开发,Java 平台可以参考 Sign in with Apple(苹果授权登陆)_mvvgo的博客-CSDN博客

苹果提供了两种验证方式,一种是基于 JWT 的算法验证,另外一种是基于 授权码 的验证,这里再提供第三种“取巧”的验证方式即“不验证模式”。

不验证模式

后端只需要接收App端提交的以下参数(useremail 为Apple返回给App的参数名)

user: 授权的用户唯一标识,该值在同一个开发者账号下的所有 App 下是一样的,开发者可以用该唯一标识符与自己后台系统的账号体系绑定起来

email: 邮箱,只有第一次 授权苹果才会给 App 返回邮箱信息,之后登录不再返回

fullName: 用户信息,只有第一次 授权苹果才会给 App 返回用户信息,之后登录不再返回

开发者只要判断 数据库 是否存在 user(授权的用户唯一标识) 存在就返回登录成功信息,不存在即在数据库插入 useremailfullName等信息(业务逻辑根据具体需求调整)

教程到此结束,后面不用看了

验证模式

苹果授权登录(Sign in with Apple)后端验证

基于 JWT 的验证

Sign in with Apple 后端 JWT 验证文档:
Apple Developer Documentation

食用指南
后端只需要接收 App 端提交的以下参数(user、email 为Apple返回给App的参数名)

userID: 授权的用户唯一标识,该值在同一个开发者账号下的所有 App 下是一样的,开发者可以用该唯一标识符与自己后台系统的账号体系绑定起来

email: 邮箱,只有第一次 授权苹果才会给 App 返回邮箱信息,之后登录不再返回

fullName: 用户信息,只有第一次 授权苹果才会给 App 返回用户信息,之后登录不再返回

authorizationCode: 授权 code(没用到)

identityToken: 授权用户的 JWT 凭证

如何验证
1、安装 php-apple-signin 库


  1. composer require griffinledingham/php-apple-signin

需要 php7.2 及以上版本,如果低于该版本,自行修改源码,源码地址


  1. https://github.com/GriffinLedingham/php-apple-signin

2、验证 JWT


  1. public function jwtApple(Request $request) {
  2. // 授权的用户唯一标识
  3. $user = $request->input('user');
  4. // 邮箱
  5. $email = $request->input('email');
  6. // 用户信息
  7. $fullName = $request->input('fullName');
  8. // 授权code 并没有用到
  9. $authorizationCode = $request->input('authorizationCode');
  10. // 授权用户的JWT凭证
  11. $identityToken = $request->input('identityToken');
  12. $appleSignInPayload = ASDecoder::getAppleSignInPayload($identityToken);
  13. $isValid = $appleSignInPayload->verifyUser($user);
  14. // 当 $isValid 为 true 时验证通过,后续逻辑根据需求编写
  15. dd($isValid);
  16. }

基于授权码的验证

Sign in with Apple 后端 授权码 验证文档:
Apple Developer Documentation

其中 iss 和 kid 的获取方式
正在上传…重新上传取消

跑不通不知道哪里错了,等研究出来再更新


  1. {
  2. "error": "invalid_client"
  3. }

Demo

GitHub - quanweiwang/sign-in-with-apple-server: sign-in-with-apple-server

iOS 苹果授权登录(Sign in with Apple)相关推荐

  1. 苹果授权登录Sign In With Apple亲测通过版[100%成功]

    苹果授权登录Sign In With Apple后台代码实现JAVA版本亲测通过版 废话不多说,直接复制把自己的包名写上就可以用了 有个别的小坑,HttpUtil自己写,没附上 Base64一定要用o ...

  2. iOS 苹果授权登录(Sign in with Apple)系列之Apple Developer配置篇

    原文 在 iOS13 中,如果 App 提供第三方登录,就必须添加 苹果登录 Sign in with Apple 选项,并要求所有开发者于 2020年4月之前 完成现有应用的更新,否则审核不给通过. ...

  3. ios 登录 java 后台,IOS苹果登录sign in with apple后端校验

    IOS苹果登录sign in with apple后端校验 最近新开发的app在IOS平台app store connent提审的时候,被拒了,原因是app上如果有接第三方登陆(比如微信,微博,fac ...

  4. iOS 苹果登录 Sign in with apple Swift

    iOS 苹果登录 Sign in with apple Swift 话不多说,直接看功能类,解释代码里有 import UIKit import AuthenticationServices @ava ...

  5. Apple Sign in with Apple(苹果授权登录PHP)

    Apple Sign in with Apple(苹果授权登录PHP) 文章目录 Apple Sign in with Apple(苹果授权登录PHP) 一.登录Apple Developer 二.创 ...

  6. Sign in With Apple (苹果授权登录)

    Sign in With Apple (苹果授权登录) 关于Sign in With Apple (苹果授权登录)的问题,公司app上架appStore被拒原因是使用第三方授权登陆但是却没有使用苹果账 ...

  7. php Sign in with Apple(苹果授权登录PHP后端接口)

    详细配置参考:https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple 本文主要参考: https: ...

  8. Java Apple_GitHub - izhaorui/AppleLogin-java: 苹果登录 Sign in with Apple 服务端校验

    APP端苹果登录java后端校验 主要校验苹果授权登录token 是否正确 主要方法 public RSAPublicKeySpec build(final String n, final Strin ...

  9. 【JAVA】对接苹果授权登录流程

    背景 苹果公司要求所有使用第三方登录的 App,都必须接入Sign in with Apple. 接入方式 基于JWT identityToken的算法验证 基于授权码的验证 校验流程 上图为苹果对接 ...

最新文章

  1. java知识积累——单元测试和JUnit(二)
  2. Laravel5.6 实现后台管理登录(自定义用户表登录)
  3. kalman滤波的解释
  4. python 中的pickle库
  5. window7连接其他计算机的打印机,win7系统电脑怎样连接其它电脑上在打印机?
  6. error: storage size of ‘threads’ isn’t known
  7. linux必须运行在enforcing,设置 Selinux环境为 Enforcing模式
  8. 突破”子网隔离”***C段
  9. 青海大学计算机考研调剂,青海大学2020年硕士研究生招生调剂公告
  10. Myeclipse2017破解:成功解决me Trial expired 0 days ago mgeclipse It's now time to buy the best IDE for yo
  11. htlm5实习报告_Wa zhu ti网站html5搭建设计毕业论文+html源码+实习报告+答辩问题
  12. 2022-2028年中国网络直播行业商业模式创新与投资机会深度研究报告
  13. win10政府专供版下载正式版附激活码 32位/64位
  14. LeetCode刷题指南
  15. Stratifyd入驻腾讯云市场,AI赋能品牌数字化升级
  16. delphi 剪切板变量_delphi剪切板-监视剪贴板
  17. 简历上的哪些内容才是 HR 眼中的干货?
  18. 志强预测中国房价到2020年以后才可能会下降
  19. 零点漂移 时间戳拦截器
  20. 浩辰CAD 2021:深度升级,全面提升用户体验!

热门文章

  1. 四川师范大学自然地理(2-地壳)90分以上版本
  2. 国内电子数据取证鉴定标准最新合集(2020版)
  3. 【Win7旗舰版系统下载 官方MSDN原版】无第三方软件 纯净3264位安装教程
  4. 默纳克系统怎么用服务器查找故障,默纳克系统常见故障的解决办法
  5. HDU - 1495 非常可乐(BFS,数学)
  6. 开源工具利器之基于主机的IDS:Wazuh
  7. CorelDRAWX4的VBA插件开发(十)多文件编程
  8. 【AI特训营】:柯西分布 Paddle API实现
  9. 药家鑫今日上午被执行死刑
  10. linux 命令 kps,ps命令