担当しているアプリでSign In with Appleの対応をしないといけないことがあり、その対応をした際に流石だなーと思った点があったので、まとめておこうと思います。
実際にどんな感じで実装したのかは、別の記事で書く予定なので、少々お待ちください。
Sign In with Appleとは
AppleIDで各種サービスへのログインができるようにするサービスです。Webサービスの会員登録する際に、Facebookで登録とかTeitterで登録とかあるやつと同じやつです。Facebookログインなど、ソーシャルログインの機能を持っているアプリは2020年4月までにSign In with Appleに対応する必要になります。
Sign In with Appleの特徴
FacebookとAppleの違いは、個人情報を極力まで渡さないのでSign In with Appleです。Facebookログインですと、名前、メールアドレスなど、登録してある個人情報をサービス側で取得することができてしまいます。以前に比べて、審査が入るなど誰でも簡単にはとれなくんはなりましたが、まだまだ、取得しようと思えばとれちゃうのが現状です。もちろん渡す前に、許可を求められますが、そこの内容をしっかり見ている人がどれほどいるのか。。。
Sign In with Appleの場合は、個人情報を全く渡さないことができます。メールアドレスはAppleが発行した各サービス専用のものになります。もちろん、そこに送られたメールは登録しているメールアドレスに転送されてくるので、メールを受け取れないことはないです。名前もサービスごとにどの名前を各サービスに渡すかを設定することができます。
個人情報を渡さずにログインできるというのは、あまり情報を渡したくない人にとってはかなりのメリットになるのではないかと思います。現に私も、Facebookログインはどんな情報が取られるのかわからず怖くてあまりつかっていません。
実装について
ここまで、概要と特徴を説明しましたが、実際に実装してみて感じたことがあったので、エンジニア目線で少しだけ解説します。
アプリには必ず実装すること。とAppleがいうだけあってアプリの実装は比較的簡単に完了しました。むしろ、サンプルコードをコピペして、Apple Developerの設定を少し変更するだけで、ログインに必要なtokenを取得することができました。私が担当していたサービスはWebとアプリで共通のIDを使用しているので、アプリだけでなくwebにもAign In with Appleを組み込む必要がありました。そこに関してもAPIがしっかりと用意されていたので、ドキュメントをしっかりと読み込んでいけば組み込むことができました。
少し欲を言えば、Apple Developerの画面での登録周りの公式ドキュメントにたどり着けず、メール送信などで詰まったところがあったので、そこがあったら嬉しかったなーと思ったくらいです。
これから対応しないといけないサービスはたくさんあるかと思いますが、ドキュメントをしっかりと読めば実装できそうなので、しっかりと対応していきましょう。
実装は下記のページにまとめています
こちらにどんどん追記していきます。