【要点】
以下、C = クライアントサイド & S = サーバサイド です。
- C: ASAuthorizationAppleIDButtonでSign in with Appleボタンを設置
- C: ASAuthorizationControllerで認証UIを呼び出す
- C: ASAuthorizationController.delegateで認証結果を受け取る
- C: 認証コード(ASAuthorizationAppleIDCredential.authorizationCode)をサーバへ送信
- S: apple-authへ受け取った認証コードを渡し、Appleのサーバからsub等を取得(こんな感じ)して自サービスのアカウントの紐付けとかをする
【サーバサイド】
- サードパーティー製ライブラリを使うほどのものでもない対応内容ですが、急いでいたし、apple-authの説明が分かりやすかったので採用(感謝)
- ハマり所は特に無し(例によってApple Developerでの諸々の設定が面倒で、provisioning profileの更新周りで小一時間手間取る程度)
- 特にUI(導線設計)周りは指示通りにやらないとリジェクト・リスクがあるので注意した(なんやかんやでこれが一番対応コストが掛かる。デザイナとSlackで半日程度やりとりしてザックリと決めて即日実装)
- 唯一のハマり所は、ASAuthorizationAppleIDCredential.authorizationCodeがNSData型だったので「Base64にするん?」と勝手に想像して実装したことぐらい。単純にこれはUTF8のconst char*型データなので以下のようにすれば良い。
NSString* codeText = [[NSString alloc] initWithData:code encoding:NSUTF8StringEncoding];
```【雑感】
- タッチIDで認証できるのは中々快適
- landscape専用のアプリだが、認証画面がportrait専用(iPhoneの場合)
- 多分、フェースID絡みの関係で、縦にせざるを得なかったのではないかと想像(やっぱり、タッチIDこそが至高)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。