🌝

【解決】supabaseのapple認証すると(message: Bad ID token, statusCode: 400) になる

2024/02/19に公開

エラー内容

Flutter×supabaseのApple認証を公式のドキュメント通りに設定して、実装したら
(message: Bad ID token, statusCode: 400) エラーが出た。

  Future<void> appleSignIn() async {
    final rawNonce = _supabase.auth.generateRawNonce();
    final hashedNonce = sha256.convert(utf8.encode(rawNonce)).toString();

    final credential = await SignInWithApple.getAppleIDCredential(scopes: [
      AppleIDAuthorizationScopes.email,
      AppleIDAuthorizationScopes.fullName,
    ], nonce: hashedNonce);

    final idToken = credential.identityToken;
    if (idToken == null) {
      _logger.e('idToken is null');
      return;
    }

   //ここでエラーになる
    final response = await _supabase.auth.signInWithIdToken(
      provider: OAuthProvider.apple,
      idToken: idToken,
      nonce: rawNonce,
    );

    _logger.i(response);
  }

解決方法

https://github.com/supabase/gotrue/issues/1401#issuecomment-1945673357
上記issueにもあるように、supabaseのプロジェクト
settings> infrastructure>Postgres versionを最新にしたらうまくいった。

Discussion