57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
---
|
||
name: APIキー体系・認証設計(移行中)
|
||
description: 現行の pk_ キー体系と、移行予定の Magic Link + Passkey 認証の状態
|
||
type: project
|
||
---
|
||
|
||
## 現行認証(pk_ キー体系)— 移行中・触らない
|
||
|
||
| ユーザー | キー | localStorage キー名 |
|
||
|---------|------|-------------------|
|
||
| maita | pk_maita_a2be09f6eaaba0db65b72f085ea352d3 | posimai_api_key |
|
||
| partner | pk_partner_fcfcbdf7d4a2ee23abf3ad046830af44 | posimai_api_key |
|
||
| musume | pk_musume_76488f7ee2a4e6cd9d4b3ad6284d4cc7 | posimai_api_key |
|
||
|
||
**注意:** `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 検証待ち)
|
||
|
||
### 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 キーを入力)
|
||
|
||
## Dashboard 環境変数
|
||
- Vercel: `POSIMAI_API_KEY` = pk_maita_...(設定済み)
|
||
- Vercel: `BASIC_AUTH_USER` / `BASIC_AUTH_PASSWORD`(設定済み)
|