認証(Firebase Auth)
概要
Firebase AuthのIDトークン(Authorization: Bearer <token>)を検証する。FirebaseのUIDはそのままアプリのユーザーIDとして使う(uploads.user_id、works.user_id)。internal/authはcmd/app・cmd/worker双方からimport可能な共有パッケージ。認証情報ファイルはbackend/.secrets/firebase-credentials.json(gitignore対象)。
ミドルウェアが2種類ある理由
Echo(/api/*)と生のnet/http(TUSの/files/*)が混在しているため:
MiddleWareForEcho(): Echoのハンドラチェーン向け。MiddleWareForHTTP(): 生のnet/httpハンドラ向け。
TUSのPreUploadCreateCallback(pipeline参照)は生ヘッダーしか扱えないため、exportされたVerifyIDTokenFromHeaderを直接呼んでトークン検証している。
主要な公開関数
MiddleWareForEcho()/MiddleWareForHTTP(): リクエスト単位のトークン検証ミドルウェア。VerifyIDTokenFromHeader: 生ヘッダーからのトークン検証(TUSフック用)。GetUIDFromContext: 検証済みリクエストのcontextからUIDを取り出すヘルパー。