flutter-authentication について
Flutter の認証とセッションライフサイクルを実装するためのスキルです。ID プロバイダー、バックエンド、リダイレクト、認証情報の保存、アプリ状態を扱い、既存構成を保ちながら安全性を検証します。
主な機能
- 01認証とセッション状態の整理
- 02OAuth、OIDC、PKCE フローの案内
- 03リダイレクト、トークン、アカウント保存の確認
- 04更新、ログアウト、アカウント切り替えへの対応
- 05偽の ID アダプターによる状態遷移テスト
- 06必要に応じたプロトコル資料の参照
活用シーン
- 01既存の Flutter アプリへのサインインフロー追加
- 02ディープリンクや OAuth コールバックの調査
- 03トークン更新、失効、オフライン起動の検証
- 04ログアウト、アカウント切り替え、プロセス再起動のテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-authenticationインストール後、Claude Code で/flutter-authenticationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/cases.jsonreferences/oauth-oidc-and-redirects.mdpasskeys-and-device-reauthentication.mdsessions-and-account-state.md詳細
Flutter 認証
認証は、ID プロバイダー、信頼できるバックエンド、プラットフォームのリダイレクト面、ローカルセッションの管理主体、アプリケーション UI にまたがるプロトコルおよびアカウント状態のライフサイクルとして扱います。移行を依頼された場合を除き、プロジェクトで使用しているプロバイダー、バックエンド、SDK、ルーター、ストレージ、状態管理を維持してください。
このスキルが選択されたことだけを理由に、SDK、クライアント登録、リダイレクトの関連付け、シークレットのプレースホルダー、アカウント、バックエンドを追加しないでください。
事前確認
pubspec.yaml、SDK の制約、サインインのエントリーポイント、プロバイダーおよびバックエンドとの契約、登録済みクライアントとリダイレクト、ディープリンク処理、トークンとアカウントの保存、リフレッシュの調整、ナビゲーションガード、ログアウト動作、フレーバー、プラットフォームとの関連付け、テストを確認します。認証、セッション状態、認可、デバイス上の再認証を区別してください。
ネイティブおよびウェブの Flutter クライアントはパブリッククライアントであり、再利用可能なクライアントシークレットを保持できません。OAuth または OIDC では、プロバイダーが対応している場合、確立された認可コードフローを PKCE と外部ユーザーエージェントで使用してください。リダイレクトの所有権を検証し、必要に応じて state、また OIDC では nonce を使用してレスポンスを照合します。スキームが一致するという理由だけで、リダイレクトを信頼してはいけません。
必要に応じてリファレンスを読む
- ブラウザー認可、PKCE、state、nonce、コールバックの所有権、ディープリンク、プロバイダーエラーについては、OAuth、OIDC、リダイレクトを読みます。
- トークンの管理、調整されたリフレッシュ、有効期限、ログアウト、失効、アカウント切り替え、起動時の復元、オフライン動作については、セッションとアカウント状態を読みます。
- リライングパーティのチャレンジ、プラットフォームとの関連付け、パスキーのライフサイクル、生体認証、ローカル認可ゲートについては、パスキーとデバイスの再認証を読みます。
境界
flutter-securityは脅威モデリングと広範なセキュリティ強化を担当します。このスキルは、正しい ID およびセッションの動作を実装します。flutter-networkingは HTTP の仕組み、インターセプター、汎用的なリトライを担当します。このスキルは、認証リフレッシュとアカウントのセマンティクスを定義します。flutter-navigationはルートとバックスタックの正確性を担当します。このスキルは、認証済み、未認証、コールバック、再認証の各状態を定義します。flutter-persistenceはストレージの仕組みを担当します。このスキルは、認証情報の機密性、アカウントの分離、有効期限、削除のライフサイクルを定義します。flutter-platform-integrationは、既存のプラグインでは要件を満たせない場合に、カスタムのネイティブ認証情報 API やリダイレクトの仕組みを担当します。
検証
決定的な状態遷移の検証にはフェイクの ID アダプターを使用し、エンドツーエンドの証明には認可済みの非本番プロバイダーを使用します。成功、キャンセル、拒否、不正または再利用されたコールバック、state と nonce の不一致、有効期限切れのアクセストークン、並行リフレッシュ、リフレッシュ失敗、失効したセッション、オフラインでの起動、ログアウト、アカウント切り替え、プロセス再起動、プラットフォームによるリンクの所有権を検証してください。
パスキーやデバイス認証情報では、実際にサポートされているデバイスで、キャンセルやロックアウトの動作を確認してください。実際に確認したプロバイダー、クライアント種別、プラットフォーム、アカウント状態、リダイレクト、ストレージ、バックエンドの検証項目を明記してください。ログイン画面が表示されたことやトークンをローカルでデコードできたことだけでは、コールバックの完全性、サーバー認可、リフレッシュの安全性、失効、ログアウト時のクリーンアップを証明できません。