{"title":"Kimlik Doğrulama & Mind Key'ler","slug":"authentication","category":"getting-started","summary":"Synapse kimlik doğrulaması nasıl çalışır: ajanlar için Mind Key, insanlar için JWT, yalnızca URL kullanan araçlar için ?key=.","audience":["human","llm"],"tags":["auth","mind-key","jwt","security"],"difficulty":"beginner","updated":"2026-06-27","word_count":469,"read_minutes":2,"llm_context":"Two auth methods: Mind Key (token-scoped, never expires) and JWT (user-scoped, 7-day expiry).\nMind Key: Authorization: Bearer mk_xxx OR ?key=mk_xxx (60 req/min limit on query)\nJWT: Authorization: Bearer eyJ... (no rate limit, used for /register, /login, /minds, /sharing)\nMind Key is shown only once at creation. Store it permanently.\nEach mind has exactly one Mind Key. Multiple minds = multiple keys.\n","lang":"tr","translated":true,"requested_lang":"tr","content_markdown":"\n# Kimlik Doğrulama & Mind Key'ler\n\nSynapse, her biri farklı bir kullanım senaryosu için optimize edilmiş iki kimlik doğrulama yöntemi kullanır. Güvenilir entegrasyonlar oluşturmak için farkı anlamak esastır.\n\n## İki Kimlik Doğrulama Yöntemi\n\n| Yöntem | Kullanım Senaryosu | Hız Sınırı | Son Kullanma |\n|--------|----------|------------|--------|\n| **Mind Key** | LLM ajanları, otomatik araçlar | Yok (header) / 60 dk (sorgu) | Asla |\n| **JWT** | İnsana yönelik arayüz, hesap işlemleri | Yok | 7 gün |\n\n## Mind Key (Ajanlar için)\n\nMind Key, kiracı kapsamlı bir API token'ıdır. Tek bir mind'in verilerini (bellekler, görevler, sohbet, betikler vb.) doğrular. Şunlar için kullanın:\n\n- API çağrısı yapan LLM ajanları\n- Arka plan otomasyon betikleri\n- MCP sunucu yapılandırması\n- Herhangi bir uzun ömürlü entegrasyon\n\n### Header kimlik doğrulaması (önerilir)\n\n```bash\ncurl -H \"Authorization: Bearer mk_yourMindKeyHere\" \\\n     https://synapse.schaefer.zone/memory/recall\n```\n\n### Sorgu parametresi (yalnızca URL kullanan araçlar için)\n\n```bash\ncurl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere\n```\n\n> [!WARNING]\n> `?key=` sorgu parametresi **dakikada 60 istek** ile sınırlıdır. Bearer header'ın hız sınırı yoktur. İstemciniz özel başlıkları desteklediğinde header'ı kullanın.\n\n### Mind Key Oluşturma\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/minds \\\n  -H \"Authorization: Bearer YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Work Mind\", \"description\": \"Project memories\"}'\n```\n\nYanıt `mind_key` içerir — **hemen kaydedin**, yalnızca bir kez gösterilir.\n\n### Mind'lerinizi listeleme\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds\n```\n\n### Bir mind'i silme (geri alınamaz!)\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds/m_xyz789\n```\n\n## JWT (İnsanlar için)\n\nJWT'ler belirli bir mind'i değil, **kullanıcı hesabını** doğrular. Şunlar için kullanın:\n\n- Hesap kaydı ve giriş\n- Mind oluşturma / listeleme / silme\n- Mind'leri diğer kullanıcılarla paylaşma\n- Web Push abonelik yönetimi\n\n### Kaydol\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"you@example.com\", \"password\": \"secret\"}'\n```\n\nDöndürür: `{ \"jwt\": \"eyJ...\", \"user\": {...} }`\n\n### Giriş\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"you@example.com\", \"password\": \"secret\"}'\n```\n\nDöndürür: `{ \"jwt\": \"eyJ...\", \"user\": {...} }`\n\n### JWT son kullanma\n\nJWT'ler **7 gün** sonra sona erer. Bir JWT sona erdiğinde, yenisini almak için `/login` çağırın. Mind Key asla sona ermez, bu yüzden mevcut ajan entegrasyonları çalışmaya devam eder.\n\n## Güvenlik En İyi Uygulamaları\n\n> [!CRITICAL]\n> - **Mind Key'leri asla git'e commit etmeyin.** Ortam değişkenleri kullanın.\n> - **Mind Key'leri asla loglamayın.** Loglarda maskeleyin (`mk_***...***xyz`).\n> - Bir sızıntıdan şüphelenirseniz **anahtarları döndürün** (mind'i silin, yeni oluşturun).\n> - Bir anahtar sızarsa etki alanını sınırlamak için **proje başına bir mind** kullanın.\n\n### Ortam değişkeni deseni\n\n```bash\n# .env (NEVER commit this file)\nSYNAPSE_MIND_KEY=mk_yourMindKeyHere\nSYNAPSE_URL=https://synapse.schaefer.zone\n```\n\n```typescript\n// Node.js\nconst mindKey = process.env.SYNAPSE_MIND_KEY;\nconst url = process.env.SYNAPSE_URL;\nawait fetch(`${url}/memory/recall`, {\n  headers: { Authorization: `Bearer ${mindKey}` },\n});\n```\n\n### MCP sunucu yapılandırması\n\n```json\n{\n  \"mcpServers\": {\n    \"synapse\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"synapse-mcp-api@latest\"],\n      \"env\": {\n        \"SYNAPSE_MIND_KEY\": \"mk_yourMindKeyHere\",\n        \"SYNAPSE_URL\": \"https://synapse.schaefer.zone\"\n      }\n    }\n  }\n}\n```\n\n## Çoklu Mind Deseni\n\nHer kullanıcı birden çok mind'e sahip olabilir. Yaygın desenler:\n\n| Mind Adı | Amaç |\n|-----------|---------|\n| `work` | İşle ilgili bellekler |\n| `personal` | Kişisel tercihler, aile |\n| `project-synapse` | Belirli proje bağlamı |\n| `learning-german` | Öğrenme ilerlemesi |\n| `assistant-default` | Genel amaçlı yedek |\n\nBağlamları izole tutmak için farklı LLM oturumlarında farklı Mind Key'ler kullanın.\n\n## Hız Sınırları\n\n| Kimlik Doğrulama Yöntemi | Sınır | Kapsam |\n|-------------|-------|-------|\n| Mind Key (header) | Yok | Mind başına |\n| Mind Key (?key=) | 60/dakika | IP başına |\n| JWT (header) | Yok | Kullanıcı başına |\n| Herkese açık uç noktalar | Yok | Global |\n\nHız sınırı başlıkları (`X-RateLimit-Limit`, `X-RateLimit-Remaining`, `Retry-After`) uygun olduğunda yanıtlara dahil edilir.\n\n## Sonraki Adımlar\n\n- [Mind Key ve JWT](/docs/getting-started/mind-key-vs-jwt) — hangisi ne zaman kullanılır\n- [Memory API](/docs/api/memory) — bir Mind Key ile neler yapabilirsiniz\n- [User API](/docs/api/user) — JWT'lerle hesap yönetimi\n","content_html":"<h1>Kimlik Doğrulama &amp; Mind Key&#39;ler</h1>\n<p>Synapse, her biri farklı bir kullanım senaryosu için optimize edilmiş iki kimlik doğrulama yöntemi kullanır. Güvenilir entegrasyonlar oluşturmak için farkı anlamak esastır.</p>\n<h2>İki Kimlik Doğrulama Yöntemi</h2>\n<table>\n<thead>\n<tr>\n<th>Yöntem</th>\n<th>Kullanım Senaryosu</th>\n<th>Hız Sınırı</th>\n<th>Son Kullanma</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><strong>Mind Key</strong></td>\n<td>LLM ajanları, otomatik araçlar</td>\n<td>Yok (header) / 60 dk (sorgu)</td>\n<td>Asla</td>\n</tr>\n<tr>\n<td><strong>JWT</strong></td>\n<td>İnsana yönelik arayüz, hesap işlemleri</td>\n<td>Yok</td>\n<td>7 gün</td>\n</tr>\n</tbody></table>\n<h2>Mind Key (Ajanlar için)</h2>\n<p>Mind Key, kiracı kapsamlı bir API token&#39;ıdır. Tek bir mind&#39;in verilerini (bellekler, görevler, sohbet, betikler vb.) doğrular. Şunlar için kullanın:</p>\n<ul>\n<li>API çağrısı yapan LLM ajanları</li>\n<li>Arka plan otomasyon betikleri</li>\n<li>MCP sunucu yapılandırması</li>\n<li>Herhangi bir uzun ömürlü entegrasyon</li>\n</ul>\n<h3>Header kimlik doğrulaması (önerilir)</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_yourMindKeyHere&quot;</span> \\\n     https://synapse.schaefer.zone/memory/recall</code></pre><h3>Sorgu parametresi (yalnızca URL kullanan araçlar için)</h3>\n<pre><code class=\"hljs language-bash\">curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere</code></pre><div class=\"callout callout-warn\">`?key=` sorgu parametresi **dakikada 60 istek** ile sınırlıdır. Bearer header'ın hız sınırı yoktur. İstemciniz özel başlıkları desteklediğinde header'ı kullanın.</div><h3>Mind Key Oluşturma</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/minds \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;name&quot;: &quot;Work Mind&quot;, &quot;description&quot;: &quot;Project memories&quot;}&#x27;</span></code></pre><p>Yanıt <code>mind_key</code> içerir — <strong>hemen kaydedin</strong>, yalnızca bir kez gösterilir.</p>\n<h3>Mind&#39;lerinizi listeleme</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n     https://synapse.schaefer.zone/minds</code></pre><h3>Bir mind&#39;i silme (geri alınamaz!)</h3>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n     https://synapse.schaefer.zone/minds/m_xyz789</code></pre><h2>JWT (İnsanlar için)</h2>\n<p>JWT&#39;ler belirli bir mind&#39;i değil, <strong>kullanıcı hesabını</strong> doğrular. Şunlar için kullanın:</p>\n<ul>\n<li>Hesap kaydı ve giriş</li>\n<li>Mind oluşturma / listeleme / silme</li>\n<li>Mind&#39;leri diğer kullanıcılarla paylaşma</li>\n<li>Web Push abonelik yönetimi</li>\n</ul>\n<h3>Kaydol</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/register \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;email&quot;: &quot;you@example.com&quot;, &quot;password&quot;: &quot;secret&quot;}&#x27;</span></code></pre><p>Döndürür: <code>{ &quot;jwt&quot;: &quot;eyJ...&quot;, &quot;user&quot;: {...} }</code></p>\n<h3>Giriş</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/login \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;email&quot;: &quot;you@example.com&quot;, &quot;password&quot;: &quot;secret&quot;}&#x27;</span></code></pre><p>Döndürür: <code>{ &quot;jwt&quot;: &quot;eyJ...&quot;, &quot;user&quot;: {...} }</code></p>\n<h3>JWT son kullanma</h3>\n<p>JWT&#39;ler <strong>7 gün</strong> sonra sona erer. Bir JWT sona erdiğinde, yenisini almak için <code>/login</code> çağırın. Mind Key asla sona ermez, bu yüzden mevcut ajan entegrasyonları çalışmaya devam eder.</p>\n<h2>Güvenlik En İyi Uygulamaları</h2>\n<div class=\"callout callout-critical\"></div><h3>Ortam değişkeni deseni</h3>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># .env (NEVER commit this file)</span>\nSYNAPSE_MIND_KEY=mk_yourMindKeyHere\nSYNAPSE_URL=https://synapse.schaefer.zone</code></pre><pre><code class=\"hljs language-typescript\"><span class=\"hljs-comment\">// Node.js</span>\n<span class=\"hljs-keyword\">const</span> mindKey = process.<span class=\"hljs-property\">env</span>.<span class=\"hljs-property\">SYNAPSE_MIND_KEY</span>;\n<span class=\"hljs-keyword\">const</span> url = process.<span class=\"hljs-property\">env</span>.<span class=\"hljs-property\">SYNAPSE_URL</span>;\n<span class=\"hljs-keyword\">await</span> <span class=\"hljs-title function_\">fetch</span>(<span class=\"hljs-string\">`<span class=\"hljs-subst\">${url}</span>/memory/recall`</span>, {\n  <span class=\"hljs-attr\">headers</span>: { <span class=\"hljs-title class_\">Authorization</span>: <span class=\"hljs-string\">`Bearer <span class=\"hljs-subst\">${mindKey}</span>`</span> },\n});</code></pre><h3>MCP sunucu yapılandırması</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;mcpServers&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n    <span class=\"hljs-attr\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n      <span class=\"hljs-attr\">&quot;command&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;npx&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;args&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;-y&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;synapse-mcp-api@latest&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;env&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_MIND_KEY&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mk_yourMindKeyHere&quot;</span><span class=\"hljs-punctuation\">,</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_URL&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone&quot;</span>\n      <span class=\"hljs-punctuation\">}</span>\n    <span class=\"hljs-punctuation\">}</span>\n  <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h2>Çoklu Mind Deseni</h2>\n<p>Her kullanıcı birden çok mind&#39;e sahip olabilir. Yaygın desenler:</p>\n<table>\n<thead>\n<tr>\n<th>Mind Adı</th>\n<th>Amaç</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>work</code></td>\n<td>İşle ilgili bellekler</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>Kişisel tercihler, aile</td>\n</tr>\n<tr>\n<td><code>project-synapse</code></td>\n<td>Belirli proje bağlamı</td>\n</tr>\n<tr>\n<td><code>learning-german</code></td>\n<td>Öğrenme ilerlemesi</td>\n</tr>\n<tr>\n<td><code>assistant-default</code></td>\n<td>Genel amaçlı yedek</td>\n</tr>\n</tbody></table>\n<p>Bağlamları izole tutmak için farklı LLM oturumlarında farklı Mind Key&#39;ler kullanın.</p>\n<h2>Hız Sınırları</h2>\n<table>\n<thead>\n<tr>\n<th>Kimlik Doğrulama Yöntemi</th>\n<th>Sınır</th>\n<th>Kapsam</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (header)</td>\n<td>Yok</td>\n<td>Mind başına</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/dakika</td>\n<td>IP başına</td>\n</tr>\n<tr>\n<td>JWT (header)</td>\n<td>Yok</td>\n<td>Kullanıcı başına</td>\n</tr>\n<tr>\n<td>Herkese açık uç noktalar</td>\n<td>Yok</td>\n<td>Global</td>\n</tr>\n</tbody></table>\n<p>Hız sınırı başlıkları (<code>X-RateLimit-Limit</code>, <code>X-RateLimit-Remaining</code>, <code>Retry-After</code>) uygun olduğunda yanıtlara dahil edilir.</p>\n<h2>Sonraki Adımlar</h2>\n<ul>\n<li><a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key ve JWT</a> — hangisi ne zaman kullanılır</li>\n<li><a href=\"/docs/api/memory\">Memory API</a> — bir Mind Key ile neler yapabilirsiniz</li>\n<li><a href=\"/docs/api/user\">User API</a> — JWT&#39;lerle hesap yönetimi</li>\n</ul>\n","urls":{"html":"/docs/getting-started/authentication","text":"/docs/getting-started/authentication?format=text","json":"/docs/getting-started/authentication?format=json","llm":"/docs/getting-started/authentication?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}