# Autentisering & Mind Keys Synapse använder två autentiseringsmetoder, var och en optimerad för olika användningsområden. Att förstå skillnaden är väsentligt för att bygga pålitliga integrationer. ## Två autentiseringsmetoder | Metod | Användningsområde | Hastighetsgräns | Utgång | |--------|----------|------------|--------| | **Mind Key** | LLM-agenter, automatiserade verktyg | Ingen (header) / 60 min (query) | Aldrig | | **JWT** | Mänskligt gränssnitt, kontoåtgärder | Ingen | 7 dagar | ## Mind Key (för agenter) En Mind Key är en klientomfattande API-token. Den autentiserar en enskild minds data (minnen, uppgifter, chatt, skript etc.). Använd den för: - LLM-agenter som anropar API:et - Bakgrundsautomationsskript - MCP-serverkonfiguration - Alla långlivade integrationer ### Header-autentisering (rekommenderas) ```bash curl -H "Authorization: Bearer mk_yourMindKeyHere" \ https://synapse.schaefer.zone/memory/recall ``` ### Queryparameter (för URL-endast-verktyg) ```bash curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere ``` > [!WARNING] > Queryparametern `?key=` är begränsad till **60 begäranden per minut**. > Bearer-headern har ingen hastighetsgräns. Använd headern när er klient > stöder egna headers. ### Skapa en 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": "Project memories"}' ``` Svaret inkluderar `mind_key` — **spara den omedelbart**, den visas endast en gång. ### Lista era minds ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` ### Ta bort en mind (oåterkalleligt!) ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` ## JWT (för människor) JWT:er autentiserar **användarkontot**, inte en specifik mind. Använd dem för: - Kontoregistrering och inloggning - Skapa / lista / ta bort minds - Dela minds med andra användare - Hantering av Web Push-prenumerationer ### Registrera ```bash curl -X POST https://synapse.schaefer.zone/register \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com", "password": "secret"}' ``` Returnerar: `{ "jwt": "eyJ...", "user": {...} }` ### Logga in ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com", "password": "secret"}' ``` Returnerar: `{ "jwt": "eyJ...", "user": {...} }` ### JWT-utgång JWT:er löper ut efter **7 dagar**. När en JWT löper ut, anropa `/login` igen för att få en ny. Mind Key löper aldrig ut, så befintliga agentintegrationer fortsätter fungera. ## Säkerhetsbästa praxis > [!CRITICAL] > - **Lägg aldrig Mind Keys i git.** Använd miljövariabler. > - **Logga aldrig Mind Keys.** Maskera dem i loggar (`mk_***...***xyz`). > - **Rotera nycklar** om ni misstänker läcka (ta bort mind, skapa en ny). > - **Använd en mind per projekt** för att begränsa skadeomfånget om en nyckel läcker. ### Mönster med miljövariabel ```bash # .env (NEVER commit this file) SYNAPSE_MIND_KEY=mk_yourMindKeyHere SYNAPSE_URL=https://synapse.schaefer.zone ``` ```typescript // Node.js const mindKey = process.env.SYNAPSE_MIND_KEY; const url = process.env.SYNAPSE_URL; await fetch(`${url}/memory/recall`, { headers: { Authorization: `Bearer ${mindKey}` }, }); ``` ### MCP-serverkonfiguration ```json { "mcpServers": { "synapse": { "command": "npx", "args": ["-y", "synapse-mcp-api@latest"], "env": { "SYNAPSE_MIND_KEY": "mk_yourMindKeyHere", "SYNAPSE_URL": "https://synapse.schaefer.zone" } } } } ``` ## Flera-mind-mönster Varje användare kan ha flera minds. Vanliga mönster: | Mind-namn | Syfte | |-----------|---------| | `work` | Jobbrelaterade minnen | | `personal` | Personliga inställningar, familj | | `project-synapse` | Specifik projektkontext | | `learning-german` | Inlärningsframsteg | | `assistant-default` | Allmän reserv | Använd olika Mind Keys för olika LLM-sessioner för att hålla kontexter isolerade. ## Hastighetsgränser | Autentiseringsmetod | Gräns | Omfattning | |-------------|-------|-------| | Mind Key (header) | Ingen | Per-mind | | Mind Key (?key=) | 60/min | Per-IP | | JWT (header) | Ingen | Per-användare | | Publika endpoints | Ingen | Global | Headers för hastighetsgräns (`X-RateLimit-Limit`, `X-RateLimit-Remaining`, `Retry-After`) inkluderas i svar när tillämpligt. ## Nästa steg - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — när man ska använda vilken - [Memory API](/docs/api/memory) — vad ni kan göra med en Mind Key - [User API](/docs/api/user) — kontohantering med JWT:er