Skip to content

Add google-drive-markdown-editor plugin#2

Open
diggymo wants to merge 2 commits intomainfrom
claude/google-drive-markdown-editor-0ZEVL
Open

Add google-drive-markdown-editor plugin#2
diggymo wants to merge 2 commits intomainfrom
claude/google-drive-markdown-editor-0ZEVL

Conversation

@diggymo
Copy link
Copy Markdown
Owner

@diggymo diggymo commented Mar 12, 2026

Google Drive の .md ファイルを編集できる Web アプリプラグイン。

  • バックエンド: Hono (AWS Lambda + Lambda Function URL)
  • フロントエンド: 素の React + Vite (pnpm workspace)
  • Google OAuth 2.0 + JWT cookie セッション管理
  • CodeMirror 6 エディタ + react-markdown リアルタイムプレビュー
  • 入力停止 2 秒後の自動保存 (debounce)
  • Google Drive「アプリで開く」対応 (state パラメータ処理)

https://claude.ai/code/session_019qAvxV5QqGkQNYuyxNDR5T

claude added 2 commits March 12, 2026 15:46
Google Drive の .md ファイルを編集できる Web アプリプラグイン。
- バックエンド: Hono (AWS Lambda + Lambda Function URL)
- フロントエンド: 素の React + Vite (pnpm workspace)
- Google OAuth 2.0 + JWT cookie セッション管理
- CodeMirror 6 エディタ + react-markdown リアルタイムプレビュー
- 入力停止 2 秒後の自動保存 (debounce)
- Google Drive「アプリで開く」対応 (state パラメータ処理)

https://claude.ai/code/session_019qAvxV5QqGkQNYuyxNDR5T
[1] OAuth CSRF 対策
- /api/auth/login で crypto.randomUUID() による nonce を生成し httpOnly cookie に保存
- OAuth state を { nonce, ds: drive_state } の JSON に変更
- /api/auth/callback で nonce の照合に失敗した場合は 400 を返す

[2] refresh_token 保存 + アクセストークン自動更新
- SessionPayload に refresh_token / access_token_expires_at を追加
- JWT セッション有効期間を 1h → 7d に延長
- Google から返された refresh_token と expires_in を session に保存
- drive.ts ミドルウェアでトークン残時間 < 5 分のときに自動リフレッシュし
  session cookie を更新(ユーザーが気づかず 1 時間で編集内容が失われる問題を修正)
- lib/token.ts に refreshGoogleToken ヘルパーを追加

[3] TODO: template.yaml の Lambda Function URL AllowOrigins を APP_URL に限定

https://claude.ai/code/session_019qAvxV5QqGkQNYuyxNDR5T
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants