1、在apple后台配置好

app端登陆

执行 composer require griffinledingham/php-apple-signin

/*** apple login* composer require griffinledingham/php-apple-signin*/public function apple(){$id_token = input('id_token', '');$client_user = input('user_id', '');if (!$id_token || !$client_user) {$this->ThrowExcption('服务器错误', 400);}//1.根据token获取用户信息try {$appleSignInPayload = ASDecoder::getAppleSignInPayload($id_token);if ($appleSignInPayload->verifyUser($client_user) == false) {$this->ThrowExcption('验证失败', 108);}} catch (\Exception $e) {$this->ThrowExcption('系统繁忙,请稍后再试', 401);}$nickname = 'Apple'; // 呢称$appleUid = $appleSignInPayload->getUser(); // apple_uid$email = $appleSignInPayload->getEmail(); // 邮箱//2.拿到用户信息进行用户登录or用户创建流程}

网页授权登陆(没有验证,网上复制)

首先获取code:GET

https://appleid.apple.com/auth/authorize?response_type=code&client_id=&redirect_uri=&state=1234

根据code获取token:POST

https://appleid.apple.com/auth/token?grant_type=authorization_code&code=code&redirect_uri=url&client_id=id&client_secret=secret
获取令牌所需参数:

  1. grant_type:'authorization_code’为获取令牌
  2. client_id:client_id
  3. redirect_uri:redirect_uri
  4. code:上一步获取到的授权码
  5. codeclient_secret:secret(一个自己生成的jwt https://developer.apple.com/documentation/signinwithapplerestapi/generate_and_validate_tokens
    返回值示例:(json)
{"access_token": "a0996b16cfb674c0eb0d29194c880455b.0.nsww.5fi5MVC-i3AVNhddrNg7Qw","token_type": "Bearer","expires_in": 3600,"refresh_token": "r9ee922f1c8b048208037f78cd7dfc91a.0.nsww.KlV2TeFlTr7YDdZ0KtvEQQ","id_token": "eyJraWQiOiJBSURPUEsxIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnNreW1pbmcuYXBwbGVsb2dpbmRlbW8iLCJleHAiOjE1NjU2NjU1OTQsImlhdCI6MTU2NTY2NDk5NCwic3ViIjoiMDAwMjY2LmRiZTg2NWIwYWE3MjRlMWM4ODM5MDIwOWI5YzdkNjk1LjAyNTYiLCJhdF9oYXNoIjoiR0ZmODhlX1ptc0pqQ2VkZzJXem85ZyIsImF1dGhfdGltZSI6MTU2NTY2NDk2M30.J6XFWmbr0a1hkJszAKM2wevJF57yZt-MoyZNI9QF76dHfJvAmFO9_RP9-tz4pN4ua3BuSJpUbwzT2xFD_rBjsNWkU-ZhuSAONdAnCtK2Vbc2AYEH9n7lB2PnOE1mX5HwY-dI9dqS9AdU4S_CjzTGnvFqC9H5pt6LVoCF4N9dFfQnh2w7jQrjTic_JvbgJT5m7vLzRx-eRnlxQIifEsHDbudzi3yg7XC9OL9QBiTyHdCQvRdsyRLrewJT6QZmi6kEWrV9E21WPC6qJMsaIfGik44UgPOnNnjdxKPzxUAa-Lo1HAzvHcAX5i047T01ltqvHbtsJEZxAB6okmwco78JQA"
}

刷新令牌所需参数:
1.grant_type:'refresh_token’为刷新令牌
2.client_id:client_id
3.client_secret:client_secret
4.refresh_token:上一步获取到的id_token

对id_token解密

通过 GET:https://appleid.apple.com/auth/keys 接口获取公钥

{"keys": [{"kty": "RSA","kid": "86D88Kf","use": "sig","alg": "RS256","n": "iGaLqP6y-SJCCBq5Hv6pGDbG_SQ11MNjH7rWHcCFYz4hGwHC4lcSurTlV8u3avoVNM8jXevG1Iu1SY11qInqUvjJur--hghr1b56OPJu6H1iKulSxGjEIyDP6c5BdE1uwprYyr4IO9th8fOwCPygjLFrh44XEGbDIFeImwvBAGOhmMB2AD1n1KviyNsH0bEB7phQtiLk-ILjv1bORSRl8AK677-1T8isGfHKXGZ_ZGtStDe7Lu0Ihp8zoUt59kx2o9uWpROkzF56ypresiIl4WprClRCjz8x6cPZXU2qNWhu71TQvUFwvIvbkE1oYaJMb0jcOTmBRZA2QuYw-zHLwQ","e": "AQAB"},{"kty": "RSA","kid": "eXaunmL","use": "sig","alg": "RS256","n": "4dGQ7bQK8LgILOdLsYzfZjkEAoQeVC_aqyc8GC6RX7dq_KvRAQAWPvkam8VQv4GK5T4ogklEKEvj5ISBamdDNq1n52TpxQwI2EqxSk7I9fKPKhRt4F8-2yETlYvye-2s6NeWJim0KBtOVrk0gWvEDgd6WOqJl_yt5WBISvILNyVg1qAAM8JeX6dRPosahRVDjA52G2X-Tip84wqwyRpUlq2ybzcLh3zyhCitBOebiRWDQfG26EH9lTlJhll-p_Dg8vAXxJLIJ4SNLcqgFeZe4OfHLgdzMvxXZJnPp_VgmkcpUdRotazKZumj6dBPcXI_XID4Z4Z3OM1KrZPJNdUhxw","e": "AQAB"}]
}

然后我们用jwt.verify通过公钥解密id_token
解密后得到的verify.sub就是用户apple账号登录在该程序中的唯一标识,我们可以把它存到程序的数据库中与用户信息做映射,用于标识用户身份

php 苹果apple登陆相关推荐

  1. 苹果Apple Music正式登陆索尼PS5

    10月28日消息,据国外媒体报道,昨晚索尼正式宣布,苹果Apple Music上架PS5平台,PS5也是首款支持 Apple Music 的主机.订阅这项服务的玩家将可在PS5上聆听9000万首歌曲. ...

  2. Sign in with Apple(苹果授权登陆) java jwt方式验证

    本文章借鉴的原文链接:https://blog.csdn.net/wpf199402076118/article/details/99677412 苹果授权登陆方式 PC/M端授权登陆,采用协议类似于 ...

  3. Sign in with Apple(苹果授权登陆)

    苹果授权登陆方式 1. PC/M端授权登陆,采用协议类似于oauth2协议 2. App端授权登陆,提供两种后端验证方式 开发者后台配置 详细配置参考该文档,手把手教学 https://develop ...

  4. Sign in with Apple(苹果授权登陆)服务端验证-测试通过版

    Sign in with Apple(苹果授权登陆)服务端验证-测试通过版 1.先引用2个jwt用到的jar包 2.算法的工具类 三方登录调用验证工具类 苹果登录方式有2种,这里介绍基于JWT算法验证 ...

  5. 苹果Apple Music将于明年登陆微软Win11/10 PC平台

    IT之家 10 月 12 日消息,微软今日宣布,苹果 Apple Music 和 Apple TV 将于 2023 年上线 Windows PC 平台,可从微软应用商店下载,预计不久后将开启测试. 此 ...

  6. 苹果apple账号授权登录第三方APP

    Apple官方文档 前言:由于公司最近有个业务需求是要进行Apple账号授权登录,于是我看边看文档边借鉴其他人的写法,发现好多文章都有一个共性,一个是在解析JWT的时候自己设置参数后进行判断,这样做没 ...

  7. 2017最新苹果 APPLE ID注册流程

    不管你是苹果开发者还是苹果爱好者,只要你手中有苹果的终端(IPHONE .IPAD .ITouch,MAC电脑) 你想用苹果的一些服务,你就必须要申请苹果APPLE ID,才能享受到苹果提供高品质的服 ...

  8. Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke

    Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke 前言 近期,本人在开发一款互联网产品,项目地址https://github.com/yj ...

  9. 元宇宙大比拼:苹果Apple, Facebook,微软,英伟达,iwemeta

    元宇宙大比拼:苹果Apple, Facebook,微软,英伟达,iwemeta  哪个才是云宇宙的大Boss? 壹.我们不用"元宇宙"这个词!苹果CEO库克:我们称其为AR 不要讲 ...

  10. 苹果APPLE最新MI芯片笔记本安装第三方内核扩展

    苹果APPLE最新MI芯片笔记本安装第三方授信内核扩展 苹果MI芯片默认不支持适配第三方签名内核扩展,在已关闭SIP情况下.仍需要调整macOS 11系统安全策略: 解决方案: 进入恢复模式 (重启系 ...

最新文章

  1. 美妙的Python又来了
  2. python的自带数据集_Python的Sklearn库中的数据集
  3. 【计算机网络复习 数据链路层】3.5.5 CSMA-CA协议
  4. php流程控制的类型有哪些,流程控制包括哪些内容
  5. python django做网页论文_基于PythonDjango框架的多媒体发布系统
  6. ora03135连接失去联系 进程id 0_Daemon 进程的创建
  7. 去掉 iOS 导航栏返回按钮文本三种方案
  8. (栈)栈 给定push序列,判断给定序列是否是pop序列
  9. 204.计数质数 (力扣leetcode) 博主可答疑该问题
  10. verilog中~在判断中的作用
  11. 计算机开机后亮度分布不均,[教程交流]解决最低亮度黑屏和亮度不均
  12. Axure RPO_ 8 下载安装教程
  13. 软文外链-软文外链发布软件-软文外链发布工具
  14. 家庭宽带搭建个人服务器
  15. Word里面的大括号怎么打出来?
  16. 经典DP题目-滑雪问题
  17. 学习SEO就到SEOWHY,SEO十万个为什…
  18. 为大地增添一抹绿色植树节公益活动
  19. 数据库(MySQL)基础
  20. 产品读书《支付战争:互联网金融创世纪》

热门文章

  1. 十分钟利用windows7漏洞破解开机密码
  2. 国产数据库的里程碑式新突破:贵阳银行核心系统4.2亿订单采购易鲸捷
  3. IBM推出新功能 加速AI应用
  4. 利用计算机对调查问卷进行,关于电脑需求调查问卷
  5. CC2500 pcb调试记录
  6. 科技爱好者周刊(第 181 期):移动支付应该怎么设计?
  7. 数字图像处理第三次试验:图像复原、图像分割
  8. Linux中VI / VIM 常用操作练习
  9. 线性回归相关系数c语言,线性回归中相关系数.doc
  10. 印象笔记中可以使用html语言吗,印象笔记支持markdown啦