PHP使用jwt做苹果登录

使用composer安装jwt

composer require firebase/php-jwt

再安装jwk-to-pem

composer require codercat/jwk-to-pem
/*** 验证token是否正常* 验证准确性:通过Apple公钥在线(https://8gwifi.org/jwkconvertfunctions.jsp)得到用于解密的pem公钥字符串* @param string $identityToken 前端获取的token* @return bool|object* @throws \Firebase\JWT\InvalidArgumentException*/public function apple_jwt_verify($identityToken = ''){// 处理 JWK 列表$client=new \GuzzleHttp\Client();$reqUrl='https://appleid.apple.com/auth/keys';$res=$client->request('GET',$reqUrl);$resData=json_decode($res->getBody()->getContents(),true);$keys=$resData['keys'];$keys_map=[];foreach($keys as $key){$keys_map[$key['kid']]=$key;}// 定位用于加密当前 identityToken 的 JWK$tks = explode('.', $identityToken);list($headb64, $bodyb64, $cryptob64) = $tks;$header=JWT::jsonDecode(JWT::urlsafeB64Decode($headb64));$key_used=$keys_map[$header->kid];//确定了 JWK 之后,安装如下第三方库就可以将 JWK 转换为 PEM了。//composer require codercat/jwk-to-pem//然后通过如下方式即可获取用户的数据了$jwkConverter = new JWKConverter();$publicKey=$jwkConverter->toPEM($key_used);$decoded = JWT::decode($identityToken, new Key($publicKey, 'RS256'));return $decoded;}

PHP使用jwt完成苹果登录相关推荐

  1. python 苹果id申请_Python 解密JWT验证苹果登录

    验证苹果登录,官方提供两种验证方法,一种是token,另一个种是code.这里使用的是token 登录流程: 苹果客户端调用苹果API,获取到用户的信息,包括: user_id 昵称 identity ...

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

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

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

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

  4. 全网最佳,第三方登录系列——苹果登录

    梳理一下苹果登录的逻辑, 这一篇是Kotlin版本的,Kotlin的代码语义比较明确,和Java兼容, 同样的方法都可以在Java中找到. 之后我会整理一篇Java版本和Go版本的 apple登录有两 ...

  5. ios 自架验证服务器,iOS 13-Sign In with Apple(苹果登录)APP+后端验证

    关于Sign In with Apple的介绍就不讲了,直接进入正题吧! Certificates,IDs & Profiels->Keys->+号 1585892549402.j ...

  6. iOS13苹果登录的后台验证token(JAVA)

    最近随着iOS的更新,苹果要求含有第三方登录的app必须实现苹果登录功能,在查询相关资料后整合进自己的项目中,再次记录下,也供大家借鉴. 以下是大致流程,挺简单的: 首先引入解析jwt的包: < ...

  7. 注销使用苹果登录的账号

    使用AppleID登录的app,可以在设置->密码与安全性->使用Apple ID的App里找到: 实现苹果登录 注销: (https://developer.apple.com/docu ...

  8. 用户修改了信息jwt服务器怎么识别,django使用JWT保存用户登录信息

    什么是JWT? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站 ...

  9. 用户的登陆认证、DjangoRestFramework JWT多条件登录,导航栏实现

    用户的登陆认证.DjangoRestFramework JWT&多条件登录 Django REST framework JWT JWT介绍 JWT的构成 生成规则: header payloa ...

最新文章

  1. python语言代码片段-有用的Python代码片段
  2. Git忽略规则及.gitignore规则不生效的解决办法
  3. Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表
  4. 存储知识:数据一致性、分级存储、分层存储与信息生命周期管理
  5. 安装mysql5.7出现问题_本地安装Mysql5.7过程中出现的一系列问题
  6. 如何用“区块链+稳定币”技术来提升资产证券化市场运作效率
  7. java超出gc开销限制_超出了GC开销限制– Java堆分析
  8. 梯度反传_反事实政策梯度解释
  9. java 策略模式 促销_java设计模式——策略模式
  10. [有限元] 面积坐标的幂函数在三角形单元,三角形环单元上的积分公式和体积坐标的幂函数在常应变四面体单元上的积分公式
  11. vmware.fusion虚拟机下的CentOS使用
  12. 1月16日学习内容整理:爬虫框架:Scrapy
  13. 选择数据分析软件时要注意什么
  14. 设计模式-02-创建型模式详解
  15. 大学生影视主题网页制作 腾龙电影网页设计模板 学生静态网页作业成品 dreamweaver电影HTML网站制作
  16. xu2w显示屏软件下载_LED BEST(LED显示屏控制软件) V2.8 官方版
  17. f.lux 自动调节显示器色温
  18. Drupal view实现排序:未来升序,过去降序
  19. BLE service, characteristic
  20. 计算机应用培训心得,计算机培训心得体会范文500字

热门文章

  1. 分享个人简历思维导图模板
  2. 实践|SRE遇上金融老干部,解决发布协调监控告警两大难题
  3. Flip Game(2021-TRN1-K)
  4. [网鼎杯 2020 青龙组]jocker(详解)
  5. Mac 系统中各个文件夹详细介绍
  6. 堆载预压弹性变形怎样计算公式_堆载预压法中固结度和沉降的计算
  7. 绘画软件兼容性测试,功能测试-兼容性测试
  8. 大专和本科学历的区别04
  9. 在无边界时代,如何确保“网络边界”安全?
  10. 计算机电源上的开关机,小芯机:电脑用电源强制关机对电脑的上伤害大么?