php 苹果apple登陆
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
获取令牌所需参数:
- grant_type:'authorization_code’为获取令牌
- client_id:client_id
- redirect_uri:redirect_uri
- code:上一步获取到的授权码
- 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登陆相关推荐
- 苹果Apple Music正式登陆索尼PS5
10月28日消息,据国外媒体报道,昨晚索尼正式宣布,苹果Apple Music上架PS5平台,PS5也是首款支持 Apple Music 的主机.订阅这项服务的玩家将可在PS5上聆听9000万首歌曲. ...
- Sign in with Apple(苹果授权登陆) java jwt方式验证
本文章借鉴的原文链接:https://blog.csdn.net/wpf199402076118/article/details/99677412 苹果授权登陆方式 PC/M端授权登陆,采用协议类似于 ...
- Sign in with Apple(苹果授权登陆)
苹果授权登陆方式 1. PC/M端授权登陆,采用协议类似于oauth2协议 2. App端授权登陆,提供两种后端验证方式 开发者后台配置 详细配置参考该文档,手把手教学 https://develop ...
- Sign in with Apple(苹果授权登陆)服务端验证-测试通过版
Sign in with Apple(苹果授权登陆)服务端验证-测试通过版 1.先引用2个jwt用到的jar包 2.算法的工具类 三方登录调用验证工具类 苹果登录方式有2种,这里介绍基于JWT算法验证 ...
- 苹果Apple Music将于明年登陆微软Win11/10 PC平台
IT之家 10 月 12 日消息,微软今日宣布,苹果 Apple Music 和 Apple TV 将于 2023 年上线 Windows PC 平台,可从微软应用商店下载,预计不久后将开启测试. 此 ...
- 苹果apple账号授权登录第三方APP
Apple官方文档 前言:由于公司最近有个业务需求是要进行Apple账号授权登录,于是我看边看文档边借鉴其他人的写法,发现好多文章都有一个共性,一个是在解析JWT的时候自己设置参数后进行判断,这样做没 ...
- 2017最新苹果 APPLE ID注册流程
不管你是苹果开发者还是苹果爱好者,只要你手中有苹果的终端(IPHONE .IPAD .ITouch,MAC电脑) 你想用苹果的一些服务,你就必须要申请苹果APPLE ID,才能享受到苹果提供高品质的服 ...
- Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke
Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke 前言 近期,本人在开发一款互联网产品,项目地址https://github.com/yj ...
- 元宇宙大比拼:苹果Apple, Facebook,微软,英伟达,iwemeta
元宇宙大比拼:苹果Apple, Facebook,微软,英伟达,iwemeta 哪个才是云宇宙的大Boss? 壹.我们不用"元宇宙"这个词!苹果CEO库克:我们称其为AR 不要讲 ...
- 苹果APPLE最新MI芯片笔记本安装第三方内核扩展
苹果APPLE最新MI芯片笔记本安装第三方授信内核扩展 苹果MI芯片默认不支持适配第三方签名内核扩展,在已关闭SIP情况下.仍需要调整macOS 11系统安全策略: 解决方案: 进入恢复模式 (重启系 ...
最新文章
- 美妙的Python又来了
- python的自带数据集_Python的Sklearn库中的数据集
- 【计算机网络复习 数据链路层】3.5.5 CSMA-CA协议
- php流程控制的类型有哪些,流程控制包括哪些内容
- python django做网页论文_基于PythonDjango框架的多媒体发布系统
- ora03135连接失去联系 进程id 0_Daemon 进程的创建
- 去掉 iOS 导航栏返回按钮文本三种方案
- (栈)栈 给定push序列,判断给定序列是否是pop序列
- 204.计数质数 (力扣leetcode) 博主可答疑该问题
- verilog中~在判断中的作用
- 计算机开机后亮度分布不均,[教程交流]解决最低亮度黑屏和亮度不均
- Axure RPO_ 8 下载安装教程
- 软文外链-软文外链发布软件-软文外链发布工具
- 家庭宽带搭建个人服务器
- Word里面的大括号怎么打出来?
- 经典DP题目-滑雪问题
- 学习SEO就到SEOWHY,SEO十万个为什…
- 为大地增添一抹绿色植树节公益活动
- 数据库(MySQL)基础
- 产品读书《支付战争:互联网金融创世纪》