ユーザーが正常にサインインしたときにカスタム署名済みトークンを生成するように認証サーバーを変更することで、Firebase認証をカスタム認証システムと統合できます。アプリはこのトークンを受け取り、Firebaseでの認証に使用します。
あなたが始める前に
- まだ行っていない場合は、スタートガイドの手順に従ってください。
- FirebaseAdminSDKをインストールして設定します。 Firebaseプロジェクトの正しいクレデンシャルを使用してSDKを初期化してください。
Firebaseで認証する
ユーザーがアプリにサインインするときは、サインイン資格情報(ユーザー名やパスワードなど)を認証サーバーに送信します。サーバーはクレデンシャルを確認し、有効な場合はカスタムFirebaseトークンを作成して、トークンをアプリに送り返します。
認証サーバーからカスタムトークンを受け取ったら、それを
signInWithCustomToken()
に渡して、ユーザーにサインインします。try { final userCredential = await FirebaseAuth.instance.signInWithCustomToken(token); print("Sign-in successful."); } on FirebaseAuthException catch (e) { switch (e.code) { case "invalid-custom-token": print("The supplied token is not a Firebase custom auth token."); break; case "custom-token-mismatch": print("The supplied token is for a different Firebase project."); break; default: print("Unkown error."); } }
次のステップ
ユーザーが新しいアカウントを作成すると、このアカウントはFirebaseプロジェクトの一部として保存され、ユーザーが使用したログイン方法に関係なく、プロジェクト内のすべてのアプリでユーザーを識別するために使用できます。
アプリでは、 User
オブジェクトからユーザーの基本的なプロファイル情報を取得できます。ユーザーの管理を参照してください。
Firebase RealtimeDatabaseとCloudStorageのセキュリティルールでは、ログインしたユーザーの一意のユーザーIDをauth
変数から取得し、それを使用してユーザーがアクセスできるデータを制御できます。
認証プロバイダーのクレデンシャルを既存のユーザーアカウントにリンクすることで、ユーザーが複数の認証プロバイダーを使用してアプリにサインインできるようにすることができます。
ユーザーをサインアウトするには、 signOut()
を呼び出します。
await FirebaseAuth.instance.signOut();