这里吐槽一下苹果的开发文档,一切源于前段时间,公司的产品app(某知名资讯app)要接入苹果登陆(ios13发布以来,apple就流氓要求新上线的app,如果有第三方登陆的话,必须要接入appleid登陆),所以看了下苹果官方提供的appleid登陆的开发文档,看了一脸懵逼(好好学学我们国内的bat的开发文档啦),然后就想着上网搜一下其他人的做法,毕竟我们是代码的搬运工。谁知道一查,md,大家对苹果的开发文档也是各种猜的,猜着来做的。由于当时手头比较忙,又要急着上线(因为提审appstore,说不接入appleid登陆审核不过,不久前提交的另外一个却没问题,尿性),遂找了个相对能看明白一点的例子(例子也是猜着做的,写得又乱),我自己稍微整理一下,终于跑通了,和app也联调成功了(虽说成功了,但是心里一直没底),然后就做其他的需求了。

  跑着跑着,大概跑了半年,突然有一个新app(A),接入appleid登陆的时候,老是失败。刚好,还有另外一个app(B)也是,但是B有时候又成功,我在想,md,最近上线了那么多的新app,都没听说反馈有问题,肯定是app那边的开发者账号配置不对啊,但是又没有明确的证据和理由说服app的开发同事,没办法,只能自己后天慢慢调了。上网搜一两个钟,都没啥结果,这时候,只能靠自己的开发经验,调试手段以及重温apple的官方文档了,重温apple的官方文档,有鸟用。最终还是靠自己一步一步debug进源码,跟了很久,结合自己的开发经验,终于找出了问题。(这次问题的相关博客:https://www.cnblogs.com/ismallboy/p/11960958.html

  吐槽苹果苹果appleid登陆获取publicKey的接口文档,字段说明和实际的不一致。文档说kid字段是从开发者账号获取10个字符的标识符密钥(苹果开发账号里面确实有10位的密钥id的,叫做Key ID),但是调了接口(https://appleid.apple.com/auth/keys)发现,返回来的kid却是7位,真心理解不了。这个明明是获取publicKey(又不是privateKey)的接口,每个人(匿名,无需任何参数和校验)都可以调的,跟开发者账号有半毛钱关系啊,辣鸡苹果。接口的详情如下:

1.这个获取publicKey的接口的返回值,你的解释是这样的

ps.

(1).接口地址:https://developer.apple.com/documentation/signinwithapplerestapi/fetch_apple_s_public_key_for_verifying_token_signature

(2).接口返回数据结构解释doc地址:https://developer.apple.com/documentation/signinwithapplerestapi/jwkset/keys):

2.实际返回的数据结构是这样的:

吐槽苹果开放接口のappleid登陆的更多相关文章

  1. 【转】App开放接口api安全性—Token签名sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

  2. App开放接口api安全性的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证, 那么这就需要用户提供一些信息,比如用户名密码等 ...

  3. App开放接口api安全性—Token签名sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

  4. 一次开放接口从需求分析到发布sdk线上包

    新年开场篇,欢迎来点赞:本篇和大家分享的是使用webapi做得接口服务验证框架,需求来源是我打算把上篇提到的图片验证码做成一种服务提供给大家,尽管我在上篇已经把代码打包开源了,但是如果有一种快速对接成 ...

  5. 开放接口/RESTful/Api服务的设计和安全方案详解

    一.总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名 ...

  6. App开放接口API安全性 — Token签名sign的设计与实现

    在app开放接口API的设计中,避免不了的就是安全性问题. 一.https协议 对于一些敏感的API接口,需要使用https协议. https是在http超文本传输协议加入SSL层,它在网络间通信是加 ...

  7. 开放接口/RESTful/Api服务的设计和安全方案

    总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名) ...

  8. APP开放接口API安全性——Token令牌Sign签名的设计与实现

    在APP开放接口API的设计中,避免不了的就是安全性问题. 一.https协议 对于一些敏感的API接口,需要使用https协议.https是在http超文本传输协议加入SSL层,它在网络间通信是加密 ...

  9. App开放接口API安全性之Token签名Sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

随机推荐

  1. TPO5-2 The Origin of Pacific Island People

    Contrary to the arguments of some (that much of the pacific was settled by Polynesians accidentally ...

  2. mysql常用方法案例

    SELECTms.id,ms.name,ms.address,ms.mobile AS phone,ms.UUID,(case when ce.score is null then 0 else ce ...

  3. LeetCode No.97,98,99

    No.97 IsInterleave 交错字符串 题目 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 输入: s1 = "aabcc&qu ...

  4. 系统学习Javaweb7----JavaScript3

    学习内容: 1.JavaScript语法规则----全局函数 2.JavaScript语法规则----自定义函数 3.BOM对象 3.1BOM对象--消息框 3.2BOM对象--循环定时器 3.3BO ...

  5. Postman接口测试学习笔记

    1.postman界面 下载安装postman工具,以下是postman的界面 快捷区:提供常用的操作入口,新建请求,执行器,导入别人共享的收藏夹测试数据,包括运行收藏夹的一组测试数据: 侧边栏:搜索 ...

  6. cashier|gasoline|reservoir

    N-COUNT 出纳(员);收银员A cashier is a person who customers pay money to or get money from in places such a ...

  7. jmeter接口压测的反思

    jmeter接口压测的反思 1.keepalive的坑:连接数满了,导致发起的请求失败. 2.token关联?是数据库取做参数化,还是随机数生成(需要改代码) 3.签名问题如何处理? 4.压测负载机端 ...

  8. 吴裕雄--天生自然 R语言开发学习:处理缺失数据的高级方法(续一)

    #-----------------------------------# # R in Action (2nd ed): Chapter 18 # # Advanced methods for mi ...

  9. maven工程根项目运行ok但是子项目就报错的解决办法

    正常启动没错 项目出现问题 maven工程根项目运行ok但是子项目就报错 报错信息是xxxx没有创建 解决办法 原来是子项目的依赖少了  没有配置1.8  所以会出现莫明其妙的bug

  10. 《软件自动化测试开发-Java和Python测试开发实用指南》出版了

    1.关于书中下载链接的问题:出现404,页面不存在 解答:大小写要区分,l和1不能弄错了 2.关于勘误,出现极个别漏子少字错字 解答:后续版本会改进,目前能理解就好了 ---------------- ...