Flask + Googleログインで発生する「FedCM get() rejects…」エラーの解決方法

プログラミング

FlaskとGoogleログイン(GSI/FedCM)を使用している際に「FedCM get() rejects with IdentityCredentialError: Error retrieving a token」というエラーが発生することがあります。このエラーはGoogle認証が正しく行われない場合に発生します。本記事では、このエラーの原因と解決方法を説明します。

1. 「FedCM get() rejects with IdentityCredentialError」の原因

このエラーは、Googleログインの設定に問題がある場合や、リダイレクトURIや認証情報が正しく設定されていない場合に発生します。特に、フローで使用するURLがGoogle Cloud Consoleで設定した「承認済みのリダイレクトURI」と一致していない場合や、公開ステータスが「テスト中」の場合に問題が発生しやすいです。

2. Flaskサーバーの設定を確認する

Flaskサーバーのログにリクエストが届かない場合、Google認証の設定を再確認する必要があります。Flaskのコードでリクエストが受け付けられていない可能性があるため、コード内の`/api/login`エンドポイントが正しく設定されていることを確認しましょう。

3. Google Cloud Consoleの設定を再確認する

Google Cloud Consoleの設定も再確認してください。「公開ステータス」が「テスト中」になっていること、「テストユーザー」に必要なGoogleアカウントが登録されていること、そして「承認済みのリダイレクトURI」や「承認済みのJavaScript生成元」が正しいか確認します。

4. エラー解決のために確認すべきポイント

以下の点を確認してください。

  • Google Cloud Consoleで「承認済みのリダイレクトURI」が正しく設定されているか
  • Flaskサーバーでリクエストが正常に受け取られているか
  • テストユーザーとして登録したGoogleアカウントでログインを試みているか
  • 公開ステータスが「テスト中」になっている場合、認証の制限があることを理解する

まとめ

「FedCM get() rejects with IdentityCredentialError」のエラーは、Google認証の設定ミスが原因で発生します。Google Cloud ConsoleやFlaskサーバーの設定を再確認し、必要な認証情報が正しく設定されているかを確認することが解決の鍵です。設定が整っていれば、エラーは解消されるはずです。

コメント

タイトルとURLをコピーしました