【Cordova】Apple IDでアプリの会員登録とログインを実装できるプラグイン「cordova-plugin-apple-login」

先日、修正したアプリを Apple の審査に提出したところ、「Apple ID でログインする機能がないよ!やり直し!」と言われてしまいました。
…正直なところ、その存在をすっかり忘れてしまっており、現在慌てて実装しているところです。

で、実装にあたり、Cordova アプリで簡単に連携・Apple アカウントの情報を取得できるプラグインがあったので、こちらを導入しました。
cordova-plugin-apple-login」 というプラグインで、GitHub のページはこちらから。

GitHub – pscsrv/cordova-plugin-apple-login
https://github.com/pscsrv/cordova-plugin-apple-login

 

インストールは下記のコマンドで行いました。

cordova plugin add cordova-plugin-apple-login --save

上記でも問題なくインストールできましたが、GitHub には下記のコマンドが記載してありました。

npm i cordova-plugin-apple-login --save

おそらくお好きな方を使用して貰えば問題ないかと思います。

インストールが完了したら、あとは下記のサンプルコードのように実装すればOKです!

SignInWithApple.isAvailable().then((isAvailable) => {
  if (isAvailable) {
    // Apple アカウントとの連携に成功 -> Apple アカウントの情報を取得する
    SignInWithApple.request({
      requestedScopes: [ SignInWithApple.Scope.Email, SignInWithApple.Scope.FullName ],  
    }).then((result) => {
      // Apple アカウントの情報を取得した時の処理  
    });
  } else {
    // Apple アカウントとの連携に失敗した時の処理
  }
});

まず 1行目では、そもそもアプリが Apple ログインを利用できるかを確認しています。
使用できる場合、変数 isAvailabletrue が入るので、こちらの値によってアカウントを取得するか、エラーメッセージを表示するかを切り替えてください。
連携可能な場合は、4行目からの処理で Apple アカウントとアプリを連携し、アカウント情報を取得しています。
取得できる情報は下記の通りです。
こちらは GitHub にも掲載してありますので、そちらも参考にしてください。

{
  authorizedScopes: [],
  identityToken: 'identityToken',
  authorizationCode: 'authorizationCode',
  realUserStatus: 1,
  fullName: {
    namePrefix: null,
    givenName: null,
    nameSuffix: null,
    middleName: null,
    familyName: null,
    nickname: null
  },
  email: null,
  state: null,
  user: 'userId'
}

なお、実際に動作させてみて分かったのですが、この Apple アカウントのメールアドレスと名前の項目は、初回連携の時は取得できますが、2回目以降は取得できないようです。
なので、動作確認で 1回連携をしてしまうと、今後メールアドレスと名前の項目が取得できなくなるため、端末側の設定から連携を解除する必要がありました。
連携の解除方法については、下記の Apple の公式サイトを参考にしてください。

「Apple でサインイン」を使っている App を管理する – Apple サポート
https://support.apple.com/ja-jp/HT210426#stopusingappleid

最初、これを知らなかったので何か設定にミスがあるのかも…と悩みました。

 

以上、Cordova アプリで Apple アカウントとの連携機能を簡単に実装できるプラグイン「cordova-plugin-apple-login」のご紹介でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG