2026-03-17 08:20:02 +00:00
|
|
|
|
---
|
2026-03-28 22:35:23 +00:00
|
|
|
|
name: APIキー体系・認証設計(移行中)
|
|
|
|
|
|
description: 現行の pk_ キー体系と、移行予定の Magic Link + Passkey 認証の状態
|
2026-03-17 08:20:02 +00:00
|
|
|
|
type: project
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-28 22:35:23 +00:00
|
|
|
|
## 現行認証(pk_ キー体系)— 移行中・触らない
|
2026-03-17 08:20:02 +00:00
|
|
|
|
|
|
|
|
|
|
| ユーザー | キー | localStorage キー名 |
|
|
|
|
|
|
|---------|------|-------------------|
|
|
|
|
|
|
| maita | pk_maita_a2be09f6eaaba0db65b72f085ea352d3 | posimai_api_key |
|
|
|
|
|
|
| partner | pk_partner_fcfcbdf7d4a2ee23abf3ad046830af44 | posimai_api_key |
|
|
|
|
|
|
| musume | pk_musume_76488f7ee2a4e6cd9d4b3ad6284d4cc7 | posimai_api_key |
|
|
|
|
|
|
|
2026-03-28 22:35:23 +00:00
|
|
|
|
**注意:** `X-API-Key` ヘッダー・`?init_key=` パラメータ・localStorage のキー保存ロジックは変更禁止。インフラ担当 AI が新認証完成後に移行する。
|
|
|
|
|
|
|
|
|
|
|
|
## 新認証(実装中・2026-03-26 時点)
|
|
|
|
|
|
|
|
|
|
|
|
**方式:** Magic Link(メール)+ Passkey(WebAuthn/FIDO2)
|
|
|
|
|
|
**実装場所:** VPS server.js(`@simplewebauthn/server@13.3.0` + `jsonwebtoken@9.0.3`)
|
|
|
|
|
|
**Supabase Auth は不採用**(認証を2箇所に持つことになるため)
|
|
|
|
|
|
|
|
|
|
|
|
### VPS 環境変数(設定済み)
|
|
|
|
|
|
- `JWT_SECRET`: 設定済み
|
|
|
|
|
|
- `WEBAUTHN_RP_ID`: `posimai.soar-enrich.com`
|
|
|
|
|
|
- `WEBAUTHN_ORIGINS`: `https://posimai.soar-enrich.com,http://localhost:3000`
|
|
|
|
|
|
- `MAGIC_LINK_BASE_URL`: `https://posimai.soar-enrich.com`
|
|
|
|
|
|
- `RESEND_API_KEY`: 設定済み(DNS 検証待ち)
|
2026-03-17 08:20:02 +00:00
|
|
|
|
|
2026-03-28 22:35:23 +00:00
|
|
|
|
### VPS DB テーブル(作成済み)
|
|
|
|
|
|
- `magic_link_tokens` — Magic Link トークン管理
|
|
|
|
|
|
- `passkey_credentials` — WebAuthn 公開鍵保存
|
|
|
|
|
|
- `auth_sessions` — JWT セッション管理
|
|
|
|
|
|
- `magic_link_rate_limit` — レート制限
|
|
|
|
|
|
- `users.email` / `users.email_verified` — カラム追加済み
|
|
|
|
|
|
|
|
|
|
|
|
### server.js 実装状況
|
|
|
|
|
|
- エンドポイント実装: **未完了(次のセッションで実施予定)**
|
|
|
|
|
|
- 実装予定エンドポイント:
|
|
|
|
|
|
- `POST /api/auth/magic-link/send`
|
|
|
|
|
|
- `GET /api/auth/magic-link/verify`
|
|
|
|
|
|
- `POST /api/auth/passkey/register/begin`
|
|
|
|
|
|
- `POST /api/auth/passkey/register/finish`
|
|
|
|
|
|
- `POST /api/auth/passkey/login/begin`
|
|
|
|
|
|
- `POST /api/auth/passkey/login/finish`
|
|
|
|
|
|
- `GET /api/auth/session/verify`
|
|
|
|
|
|
- `DELETE /api/auth/session`
|
|
|
|
|
|
|
|
|
|
|
|
## Gemini API キー
|
|
|
|
|
|
- サーバーサイド(server.js)が Gemini に接続するためのキー
|
|
|
|
|
|
- docker-compose.yml の `GEMINI_API_KEY` に設定済み
|
|
|
|
|
|
- think アプリはフロントから直接 Gemini API を呼び出す(ユーザーが自分の API キーを入力)
|
2026-03-17 08:20:02 +00:00
|
|
|
|
|
|
|
|
|
|
## Dashboard 環境変数
|
2026-03-28 22:35:23 +00:00
|
|
|
|
- Vercel: `POSIMAI_API_KEY` = pk_maita_...(設定済み)
|
|
|
|
|
|
- Vercel: `BASIC_AUTH_USER` / `BASIC_AUTH_PASSWORD`(設定済み)
|