{"title":"Mind Key vs JWT — vad när?","slug":"mind-key-vs-jwt","category":"getting-started","summary":"Beslutsguide: Mind Key för agentdataåtkomst, JWT för kontohantering.","audience":["human","llm"],"tags":["auth","mind-key","jwt","decision-guide"],"difficulty":"beginner","updated":"2026-06-27","word_count":645,"read_minutes":3,"llm_context":"Mind Key: tenant-scoped, never expires, for memory/chat/tasks/scripts/computers/webhooks.\nJWT: user-scoped, 7-day expiry, for /register, /login, /minds (CRUD), /sharing, /push.\nSimple rule: if it touches a single mind's data → Mind Key. If it manages the account → JWT.\nException: /computers/me/* uses Computer Token (not Mind Key or JWT).\n","lang":"sv","translated":true,"requested_lang":"sv","content_markdown":"\n# Mind Key vs JWT — vad när?\n\nSynapse har två autentiseringstoken. Att välja fel leder till 401-fel. Den här\nguiden ger er ett tydligt beslutsramverk.\n\n## Snabb beslutstabell\n\n| Ni vill... | Använd |\n|----------------|-----|\n| Lagra / återkalla minnen | Mind Key |\n| Skicka / polla chattmeddelanden | Mind Key |\n| Hantera uppgifter | Mind Key |\n| Lagra skript | Mind Key |\n| Registrera webhooks | Mind Key |\n| Styr datorer | Mind Key (användarsida) / Computer Token (agentsida) |\n| Registrera användarkonto | Inget (publik) |\n| Logga in | Inget (publik) |\n| Skapa / lista / ta bort minds | JWT |\n| Dela en mind med en annan användare | JWT |\n| Prenumerera på web push-aviseringar | JWT |\n| Visa granskningslogg | Mind Key |\n\n## Den enkla regeln\n\n> [!TIP]\n> **Om det rör en enskild minds data → Mind Key.**\n> **Om det hanterar kontot eller mind-metadata → JWT.**\n\n## Mind Key — dataåtkomsttoken\n\nEn Mind Key ger åtkomst till **en minds data**. Det är en långlivad token som\naldrig löper ut (tills minden tas bort). Perfekt för:\n\n- LLM-agenter som persistens minnen mellan sessioner\n- Bakgrunds-cron-jobb\n- MCP-serverkonfiguration\n- Webhook-integrationer\n- Mobilappar som läser minne\n\n### Vad Mind Key kan göra\n\n- `GET /memory/recall` — läsa alla minnen i denna mind\n- `POST /memory` — lagra/uppdatera minnen\n- `GET /chat/poll` — läsa chattmeddelanden\n- `POST /chat/reply` — skicka chattmeddelanden\n- `GET /mind/tasks` — lista uppgifter\n- `POST /mind/task` — skapa uppgifter\n- `POST /script` — lagra skript\n- `POST /webhooks` — registrera webhooks\n- `POST /computers/:id/commands` — köa datorkommandon\n\n### Vad Mind Key INTE kan göra\n\n- Skapa / lista / ta bort minds (behöver JWT)\n- Dela mind med annan användare (behöver JWT)\n- Visa användarkontoinfo (behöver JWT)\n- Prenumerera på web push (behöver JWT)\n\n## JWT — token för kontohantering\n\nEn JWT autentiserar **användarkontot**. Den löper ut efter 7 dagar och används\nför kontooperationer som spänner över flera minds eller involverar andra\nanvändare.\n\n### Vad JWT kan göra\n\n- `POST /minds` — skapa en ny mind (returnerar en ny Mind Key)\n- `GET /minds` — lista alla minds för denna användare\n- `DELETE /minds/:id` — ta bort en mind\n- `POST /sharing` — dela en mind med en annan användare\n- `POST /push/subscribe` — prenumerera på web push-aviseringar\n- `GET /sharing` — lista mind-delningar\n\n### Vad JWT INTE kan göra\n\n- Läsa / skriva minnen (behöver Mind Key)\n- Skicka chattmeddelanden (behöver Mind Key)\n- Hantera uppgifter (behöver Mind Key)\n- Registrera webhooks (behöver Mind Key)\n\n## Specialfall: Computer Token\n\n`/computers/me/*`-endpoints (agentriktade, för screen-remote-agent) använder en\ntredje tokentyp: **Computer Token**. Denna token returneras av\n`POST /computers/register` när en installationskod löses in och är specifik för\nen registrerad dator.\n\n| Endpoint | Autentisering |\n|----------|------|\n| `GET /computers/me/poll` | Computer Token |\n| `POST /computers/me/commands/:cid/result` | Computer Token |\n| `GET /computers/list` | Mind Key eller JWT |\n| `POST /computers/:id/commands` | Mind Key eller JWT |\n\n## Vanliga mönster\n\n### Mönster 1: Enskild LLM-agent\n\n1. Registrera en gång → få JWT\n2. Skapa en mind → få Mind Key\n3. LLM använder Mind Key för allt\n\n### Mönster 2: Flerprojektsagent\n\n1. Registrera en gång → få JWT\n2. Skapa flera minds (work, personal, project-x) → få flera Mind Keys\n3. LLM laddar olika Mind Key baserat på kontext\n\n### Mönster 3: Team-delning\n\n1. Användare A skapar en mind → får Mind Key A\n2. Användare A delar med Användare B via JWT (`POST /sharing`)\n3. Användare B kan nu komma åt via sin egen JWT\n4. För LLM-åtkomst måste Användare B skapa sin egen Mind Key (eller använda A:s)\n\n### Mönster 4: MCP-server\n\nMCP-servrar använder alltid Mind Key (satt via `SYNAPSE_MIND_KEY`-miljövariabel).\nEn MCP-serverinstans = en mind. För multi-mind-åtkomst, kör flera MCP-instanser\neller implementera klientbaserad mind-växling.\n\n## Fusklapp för tokenformat\n\n| Token | Format | Exempel |\n|-------|--------|---------|\n| Mind Key | `mk_` + 36 tecken | `mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789` |\n| JWT | `eyJ` + base64 | `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` |\n| Computer Token | `ct_` + 36 tecken | `ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789` |\n\n## Nästa steg\n\n- [Autentisering](/docs/getting-started/authentication) — fullständig auth-guide\n- [User & Minds API](/docs/api/user) — JWT-skyddade endpoints\n- [Memory API](/docs/api/memory) — Mind Key-skyddade endpoints\n","content_html":"<h1>Mind Key vs JWT — vad när?</h1>\n<p>Synapse har två autentiseringstoken. Att välja fel leder till 401-fel. Den här\nguiden ger er ett tydligt beslutsramverk.</p>\n<h2>Snabb beslutstabell</h2>\n<table>\n<thead>\n<tr>\n<th>Ni vill...</th>\n<th>Använd</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Lagra / återkalla minnen</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Skicka / polla chattmeddelanden</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Hantera uppgifter</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Lagra skript</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Registrera webhooks</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Styr datorer</td>\n<td>Mind Key (användarsida) / Computer Token (agentsida)</td>\n</tr>\n<tr>\n<td>Registrera användarkonto</td>\n<td>Inget (publik)</td>\n</tr>\n<tr>\n<td>Logga in</td>\n<td>Inget (publik)</td>\n</tr>\n<tr>\n<td>Skapa / lista / ta bort minds</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Dela en mind med en annan användare</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Prenumerera på web push-aviseringar</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Visa granskningslogg</td>\n<td>Mind Key</td>\n</tr>\n</tbody></table>\n<h2>Den enkla regeln</h2>\n<div class=\"callout callout-ok\">**Om det rör en enskild minds data → Mind Key.**\n**Om det hanterar kontot eller mind-metadata → JWT.**</div><h2>Mind Key — dataåtkomsttoken</h2>\n<p>En Mind Key ger åtkomst till <strong>en minds data</strong>. Det är en långlivad token som\naldrig löper ut (tills minden tas bort). Perfekt för:</p>\n<ul>\n<li>LLM-agenter som persistens minnen mellan sessioner</li>\n<li>Bakgrunds-cron-jobb</li>\n<li>MCP-serverkonfiguration</li>\n<li>Webhook-integrationer</li>\n<li>Mobilappar som läser minne</li>\n</ul>\n<h3>Vad Mind Key kan göra</h3>\n<ul>\n<li><code>GET /memory/recall</code> — läsa alla minnen i denna mind</li>\n<li><code>POST /memory</code> — lagra/uppdatera minnen</li>\n<li><code>GET /chat/poll</code> — läsa chattmeddelanden</li>\n<li><code>POST /chat/reply</code> — skicka chattmeddelanden</li>\n<li><code>GET /mind/tasks</code> — lista uppgifter</li>\n<li><code>POST /mind/task</code> — skapa uppgifter</li>\n<li><code>POST /script</code> — lagra skript</li>\n<li><code>POST /webhooks</code> — registrera webhooks</li>\n<li><code>POST /computers/:id/commands</code> — köa datorkommandon</li>\n</ul>\n<h3>Vad Mind Key INTE kan göra</h3>\n<ul>\n<li>Skapa / lista / ta bort minds (behöver JWT)</li>\n<li>Dela mind med annan användare (behöver JWT)</li>\n<li>Visa användarkontoinfo (behöver JWT)</li>\n<li>Prenumerera på web push (behöver JWT)</li>\n</ul>\n<h2>JWT — token för kontohantering</h2>\n<p>En JWT autentiserar <strong>användarkontot</strong>. Den löper ut efter 7 dagar och används\nför kontooperationer som spänner över flera minds eller involverar andra\nanvändare.</p>\n<h3>Vad JWT kan göra</h3>\n<ul>\n<li><code>POST /minds</code> — skapa en ny mind (returnerar en ny Mind Key)</li>\n<li><code>GET /minds</code> — lista alla minds för denna användare</li>\n<li><code>DELETE /minds/:id</code> — ta bort en mind</li>\n<li><code>POST /sharing</code> — dela en mind med en annan användare</li>\n<li><code>POST /push/subscribe</code> — prenumerera på web push-aviseringar</li>\n<li><code>GET /sharing</code> — lista mind-delningar</li>\n</ul>\n<h3>Vad JWT INTE kan göra</h3>\n<ul>\n<li>Läsa / skriva minnen (behöver Mind Key)</li>\n<li>Skicka chattmeddelanden (behöver Mind Key)</li>\n<li>Hantera uppgifter (behöver Mind Key)</li>\n<li>Registrera webhooks (behöver Mind Key)</li>\n</ul>\n<h2>Specialfall: Computer Token</h2>\n<p><code>/computers/me/*</code>-endpoints (agentriktade, för screen-remote-agent) använder en\ntredje tokentyp: <strong>Computer Token</strong>. Denna token returneras av\n<code>POST /computers/register</code> när en installationskod löses in och är specifik för\nen registrerad dator.</p>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Autentisering</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /computers/me/poll</code></td>\n<td>Computer Token</td>\n</tr>\n<tr>\n<td><code>POST /computers/me/commands/:cid/result</code></td>\n<td>Computer Token</td>\n</tr>\n<tr>\n<td><code>GET /computers/list</code></td>\n<td>Mind Key eller JWT</td>\n</tr>\n<tr>\n<td><code>POST /computers/:id/commands</code></td>\n<td>Mind Key eller JWT</td>\n</tr>\n</tbody></table>\n<h2>Vanliga mönster</h2>\n<h3>Mönster 1: Enskild LLM-agent</h3>\n<ol>\n<li>Registrera en gång → få JWT</li>\n<li>Skapa en mind → få Mind Key</li>\n<li>LLM använder Mind Key för allt</li>\n</ol>\n<h3>Mönster 2: Flerprojektsagent</h3>\n<ol>\n<li>Registrera en gång → få JWT</li>\n<li>Skapa flera minds (work, personal, project-x) → få flera Mind Keys</li>\n<li>LLM laddar olika Mind Key baserat på kontext</li>\n</ol>\n<h3>Mönster 3: Team-delning</h3>\n<ol>\n<li>Användare A skapar en mind → får Mind Key A</li>\n<li>Användare A delar med Användare B via JWT (<code>POST /sharing</code>)</li>\n<li>Användare B kan nu komma åt via sin egen JWT</li>\n<li>För LLM-åtkomst måste Användare B skapa sin egen Mind Key (eller använda A:s)</li>\n</ol>\n<h3>Mönster 4: MCP-server</h3>\n<p>MCP-servrar använder alltid Mind Key (satt via <code>SYNAPSE_MIND_KEY</code>-miljövariabel).\nEn MCP-serverinstans = en mind. För multi-mind-åtkomst, kör flera MCP-instanser\neller implementera klientbaserad mind-växling.</p>\n<h2>Fusklapp för tokenformat</h2>\n<table>\n<thead>\n<tr>\n<th>Token</th>\n<th>Format</th>\n<th>Exempel</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key</td>\n<td><code>mk_</code> + 36 tecken</td>\n<td><code>mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789</code></td>\n</tr>\n<tr>\n<td>JWT</td>\n<td><code>eyJ</code> + base64</td>\n<td><code>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...</code></td>\n</tr>\n<tr>\n<td>Computer Token</td>\n<td><code>ct_</code> + 36 tecken</td>\n<td><code>ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789</code></td>\n</tr>\n</tbody></table>\n<h2>Nästa steg</h2>\n<ul>\n<li><a href=\"/docs/getting-started/authentication\">Autentisering</a> — fullständig auth-guide</li>\n<li><a href=\"/docs/api/user\">User &amp; Minds API</a> — JWT-skyddade endpoints</li>\n<li><a href=\"/docs/api/memory\">Memory API</a> — Mind Key-skyddade endpoints</li>\n</ul>\n","urls":{"html":"/docs/getting-started/mind-key-vs-jwt","text":"/docs/getting-started/mind-key-vs-jwt?format=text","json":"/docs/getting-started/mind-key-vs-jwt?format=json","llm":"/docs/getting-started/mind-key-vs-jwt?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}