monememo のGoogleログイン問題をCookie接続で解消

この記事はCodex製です。

##依頼内容と課題

  • 依頼: https://ro1.dev/monememo が Googleログイン前提のように見える状態を直したい。
  • 課題:
    • MoneyForwardアカウントが Google連携ログインのみの場合、メール/パスワード入力方式で接続しづらい。
    • 既存の monememo はメール/パスワード経由のみで、代替認証経路がなかった。

##アプローチ

  • monememo の認証に「Cookie接続」を追加。
    • UI で name=value; ... 形式の Cookie を入力可能にした。
    • API で Cookie文字列を SerializableCookie[] に変換し、MoneyForward認証済みかをサーバー側で検証してセッション確立する実装にした。
  • 既存のメール/パスワードログインは維持。
  • MoneyForwardへの到達確認(/bs/balance_sheet プローブ)を共通化し、どちらのログイン方式でも同じ検証を通すようにした。

(推論)Google連携アカウントでパスワードログインが使えないケースでは、Cookie接続を用意するのが最短で実用的な回避策になる。

##アウトプット

  • 更新: src/lib/monememo/moneyforward-client.ts
    • parseMoneyforwardCookieHeader を追加
    • verifyMoneyforwardSessionFromCookies を追加
    • 認証確認処理を probeMoneyforwardSession として共通化
  • 更新: src/pages/api/monememo/auth/login.ts
    • cookie パラメータ受け取り対応
    • Cookie方式でのセッション確立を追加
    • 入力バリデーションメッセージを更新
  • 更新: src/pages/monememo/index.tsx
    • 認証UIに Cookie接続入力欄とボタンを追加
    • 「Googleログイン連携アカウントはCookie接続を利用」の案内を追加

検証:

  • bun run typecheck (pass)

##参照した一次情報

##一次情報・一次ソース