一、先获取apple的公钥

获取Apple公钥访问地址: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"

}

]

}

取Apple公钥,key数组里面任意一个,例如

{

"kty": "RSA",

"kid": "86D88Kf",

"use": "sig",

"alg": "RS256",

"n": "iGaLqP6y-SJCCBq5Hv6pGDbG_SQ11MNjH7rWHcCFYz4hGwHC4lcSurTlV8u3avoVNM8jXevG1Iu1SY11qInqUvjJur--hghr1b56OPJu6H1iKulSxGjEIyDP6c5BdE1uwprYyr4IO9th8fOwCPygjLFrh44XEGbDIFeImwvBAGOhmMB2AD1n1KviyNsH0bEB7phQtiLk-ILjv1bORSRl8AK677-1T8isGfHKXGZ_ZGtStDe7Lu0Ihp8zoUt59kx2o9uWpROkzF56ypresiIl4WprClRCjz8x6cPZXU2qNWhu71TQvUFwvIvbkE1oYaJMb0jcOTmBRZA2QuYw-zHLwQ",

"e": "AQAB"

}

二 获取解密的字符串

通过Apple公钥在线(https://8gwifi.org/jwkconvertfunctions.jsp)得到用于解密的pem公钥字符串

复制公钥粘贴到输入框,提交,得到公钥

$publicKey = "-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlxrwmuYSAsTfn+lUu4go

ZSXBD9ackM9OJuwUVQHmbZo6GW4Fu/auUdN5zI7Y1dEDfgt7m7QXWbHuMD01HLnD

4eRtY+RNwCWdjNfEaY/esUPY3OVMrNDI15Ns13xspWS3q+13kdGv9jHI28P87RvM

pjz/JCpQ5IM44oSyRnYtVJO+320SB8E2Bw92pmrenbp67KRUzTEVfGU4+obP5RZ0

9OxvCr1io4KJvEOjDJuuoClF66AT72WymtoMdwzUmhINjR0XSqK6H0MdWsjw7ysy

d/JhmqX5CAaT9Pgi0J8lU/pcl215oANqjy7Ob+VMhug9eGyxAWVfu/1u6QJKePlE

+wIDAQAB

-----END PUBLIC KEY-----";

三 校验

校验客户端传过来的$identityToken,通过jwt校验

//token校验

private function appleJwtVerify($identityToken = '',$public_key)

{

//pem公钥 【也可以通过将RSA公钥modulus(N)和exponent(E)转换为PEM文件】

$decoded = JWT::decode($identityToken, $publicKey, array('RS256'));

return $decoded;

}

/**

* 第三方登录

*/

public function appleIdLogin()

{

$openid = $this->params('userID', '');

$verifyToken = $this->params('verifyToken', '');

if(empty($openid) || empty($verifyToken)){

exit( '参数错误'),

}

//token校验

$verifyRes = $this->appleJwtVerify($verifyToken);

if(isset($verifyRes['jwtStatus']) && $verifyRes['jwtStatus'] == 'failed'){

//校验失败之后的操作

return;

}else{

//校验失败之后的进行注册操作

}

}

php调起淘宝app授权登录,PHP实现苹果第三方授权登录相关推荐

  1. 阿里云网页跳转淘宝app授权登陆流程

    前言 今天刚好去阿里云平台认证一个证书,登陆时使用到第三方app授权(淘宝),恰好前段时间朋友问我第三方平台微信授权登陆的流程,故记录一下,方便大家交流学习. 流程步骤 1.访问阿里云培训中心 - 数 ...

  2. 极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布

    一分钟速览新闻点! OPPO在德国反诉诺基亚专利侵权 抖音支持外放音量过高提醒功能 淘宝App已支持"云闪付"付款 理想汽车称玻璃存在自动开裂可能性 阿里申请"阿里元宇宙 ...

  3. 淘宝客订单同步,关联私域授权用户,给用户返分,流程是如何串起来的

    淘宝客订单同步,关联用户,给用户返分整体实现流程: 提前完成: 渠道管理申请  .专属的推广位完成备案  .实现用户授权相关接口开放平台-文档中心  .实现绑定私域用户接口taobao.tbk.sc. ...

  4. 淘宝 APP 网络架构演进与弱网破障实践

    作者:沈良炜 阿里大淘宝终端体验平台团队 面对移动互联网络下复杂多变的网络环境,如何提供更稳定可靠的请求性能,保障用户的加载浏览体验?本文将为大家分享淘宝APP统一网络库的演进. 一.引言 自2013 ...

  5. 淘宝App惊现“内测版本弹屏”P0级事故!5张淘宝架构PPT,剖析事故始末

    点击"技术领导力"关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 老K跟朋友开玩笑:今天的心情和手 ...

  6. 手机淘宝APP关键词搜索采集方案

    自2018年12月中旬之后,淘宝升级了反爬虫策略,淘宝Web版必须要登录之后才能使用搜索功能(直接搜索会被重定向到登录界面,登录之后才能看到搜索结果).然而登录之后如果访问稍微频繁,就会出现滑块验证码 ...

  7. 使用WEX5移动开发工具制作仿淘宝APP

    毕业设计-使用WEX5移动开发工具制作仿淘宝APP 系统设计的意义 本课题来源于对日常逛超市.购物的生活体验和指导老师的提示.本系统是基于 WeX5的仿淘宝App系统,它商家们提供了一个更广阔的商品推 ...

  8. iOS 类似复制链接打开淘宝APP后弹出页面功能

    写在前面 我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样: example.PNG 这个功能想必大家都挺熟悉 ...

  9. 淘宝APP数据如何获取

    随着中国互联网的快速发展,淘宝APP已成为了人们购物必备的应用程序之一.作为中国最大的在线购物平台之一,淘宝APP每天都会生成海量的交易数据,这些数据对分析消费者行为.预测市场趋势和优化商家运营都非常 ...

最新文章

  1. 基于ArcGIS JS API 的点击查询功能
  2. SAP信用控制配置事物码
  3. 【机器学习】深刻理解决策树-动手计算ID3算法
  4. 匿名函数自我调用_Python中的匿名函数及递归思想简析
  5. jetbrick-template 和其他模板的性能测试比较
  6. Magedu2_3 linux文件目录
  7. QT GUI界面中集成VISIO绘图区详细说明
  8. 虚拟主机与云服务器的区别
  9. 动手学数据分析之数据加载及探索性数据分析
  10. 小米、搜狗、TW等机器学习算法工程师面试总结
  11. Google - 搜索图片快速设置
  12. Android音频数据格式概述
  13. 串口通讯调试-串口调试助手
  14. 物联网Wi-Fi,SIP 时代即将来临
  15. Windows 服务(1) (from MSDN)
  16. C语言根据国家英文首字母进行排序
  17. idea调试源代码c语言,IDEA阅读spring源码并调试
  18. 非线性光学散射偏微分方程组的matlab求解仿真
  19. Oracle 游标遍历 显式游标 静态游标 OPEN v_cur(); WHILE v_cur%FOUND LOOP; LOOP FETCH v_cur INTO v_row
  20. 液晶屏有哪些种类,区别是什么?

热门文章

  1. cpu上干硅脂怎么清理_cpu老硅脂怎么清理
  2. July, 29(R)
  3. VirtualBox不能为虚拟电脑打开一个新任务
  4. ajax应用如何做好seo
  5. mysql查询学生表的总人数,MySQL查询练习2
  6. Python中__dict__用法
  7. pycharm下载及安装说明
  8. python安装扩展库常用的命令_Python环境——安装扩展库
  9. java 标签云_网站标签云(TagCloud)的实现
  10. 微信小程序之基于canvas绘制高铁线路图