# User & Minds API User & Minds API จัดการบัญชี endpoint เหล่านี้ใช้ JWT authentication (ไม่ใช่ Mind Key) เพราะทำงานในระดับบัญชี ไม่ใช่ระดับ mind ## Endpoint ยืนยันตัวตน ### POST /register สร้างบัญชีผู้ใช้ใหม่ ```bash curl -X POST https://synapse.schaefer.zone/register \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password", "display_name": "Michael" }' ``` Response: ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login ล็อกอินเข้าสู่บัญชีที่มีอยู่ ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` Response: เหมือนกับ `/register` ## Minds Endpoints ### POST /minds สร้าง mind ใหม่ ส่งกลับ Mind Key — **บันทึกทันที** แสดงเพียงครั้งเดียว ```bash curl -X POST https://synapse.schaefer.zone/minds \ -H "Authorization: Bearer YOUR_JWT" \ -H "Content-Type: application/json" \ -d '{ "name": "Work Mind", "description": "Job-related memories" }' ``` Response: ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > `mind_key` แสดงเพียงครั้งเดียว หากคุณสูญเสียจะดึงคืนไม่ได้ — ต้องลบ mind และสร้างใหม่ (ซึ่งจะสูญเสีย memory ที่จัดเก็บไว้ทั้งหมด) ### GET /minds รายการ mind ทั้งหมดของผู้ใช้ปัจจุบัน ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` Response: ```json { "minds": [ { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "created_at": "2026-06-27T...", "memory_count": 142, "last_activity": "2026-06-27T..." } ] } ``` ### DELETE /minds/:id ลบ mind อย่างถาวร ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > การลบ mind **เป็นการกระทำที่ย้อนกลับไม่ได้** memory, task, chat history และ script ทั้งหมดใน mind นั้นจะสูญหายอย่างถาวร export ก่อนผ่าน `GET /memory/mind-export` หากคุณต้องการสำรองข้อมูล ## รูปแบบ Multi-Mind ผู้ใช้ส่วนใหญ่ได้ประโยชน์จากหลาย mind เพื่อแยก context: ```bash # Create minds for different contexts curl -X POST .../minds -d '{"name": "work", "description": "Job"}' # → mind_key: mk_work... curl -X POST .../minds -d '{"name": "personal", "description": "Personal life"}' # → mind_key: mk_personal... curl -X POST .../minds -d '{"name": "project-synapse", "description": "Synapse dev"}' # → mind_key: mk_synapse... ``` ใช้ Mind Key ต่างกันใน LLM session ต่างกันเพื่อแยก context ## ความปลอดภัยบัญชี ### ข้อกำหนดรหัสผ่าน - ขั้นต่ำ 6 ตัวอักษร - ไม่จำกัดความยาวสูงสุด (ใช้ password manager) - เก็บเป็น bcrypt hash (ไม่เก็บ plaintext เด็ดขาด) ### การหมดอายุของ JWT JWT หมดอายุหลัง **7 วัน** เมื่อหมดอายุเรียก `/login` อีกครั้ง ### ความปลอดภัยของ Mind Key Mind Key ไม่มีวันหมดอายุ หาก Mind Key ถูกโจมตี: 1. สร้าง mind ใหม่ผ่าน `POST /minds` 2. อัปเดต config ของ LLM ด้วย Mind Key ใหม่ 3. ลบ mind ที่ถูกโจมตีผ่าน `DELETE /minds/:id` ## ขั้นตอนถัดไป - [Authentication](/docs/getting-started/authentication) — คู่มือ auth แบบเต็ม - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — คู่มือการตัดสินใจ - [Sharing API](/docs/api/user) — แชร์ mind กับผู้ใช้อื่น