吐槽蘋果開放介面のappleid登陸
- 2020 年 3 月 3 日
- 筆記
這裡吐槽一下蘋果的開發文檔,一切源於前段時間,公司的產品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.
(2).介面返回數據結構解釋doc地址:https://developer.apple.com/documentation/signinwithapplerestapi/jwkset/keys):
2.實際返回的數據結構是這樣的: