🎃

Sign in with AppleをFlutterで実装する

2020/12/07に公開

flutterでSign in with Appleを実装したのでまとめておきます。

プラグインはapple_sign_inやsign_in_with_appleなどありますが、事前の手順が簡単なのでapple_sign_inがおすすめです。

Sign in with Appleを有効にする

Xcodeを起動して以下実施します。

  1. Signing & Capabilities から +Capability をクリックします。

  2. Sign in with Appleを追加します。

  3. entitlements に Sign in with Apple の項目が追加されたことを確認します。

Firebase Authenticationを設定する

  1. Appleを有効にします。

Flutterの実装

Sign in処理

  firebase_auth: ^0.18.3
  apple_sign_in: ^0.1.0
  flutter_auth_buttons: ^0.10.0
Future<AuthResult> _signInWithApple() async {
  final result = await AppleSignIn.performRequests([
    AppleIdRequest(
      requestedScopes: [Scope.fullName],
      requestedOperation: OpenIdOperation.operationLogin,
    )
  ]);
  // TODO: result.status を見てエラーハンドリング

  const oAuthProvider = OAuthProvider(providerId: 'apple.com');
  final credential = oAuthProvider.credential(
    idToken: String.fromCharCodes(result.credential.identityToken),
    accessToken: String.fromCharCodes(result.credential.authorizationCode),
  );
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

Discussion