{"title":"المصادقة و Mind Keys","slug":"authentication","category":"getting-started","summary":"كيف تعمل مصادقة Synapse: Mind Keys للوكلاء، JWTs للبشر، ?key= للأدوات التي تفتح عناوين URL فقط.","audience":["human","llm"],"tags":["auth","mind-key","jwt","security"],"difficulty":"beginner","updated":"2026-06-27","word_count":457,"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":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# المصادقة و Mind Keys\n\nيستخدم Synapse طريقتين للمصادقة، كلٌّ مُحسّنة لحالة استخدام مختلفة.\nفهم الفرق أساسي لبناء تكاملات موثوقة.\n\n## طريقتان للمصادقة\n\n| الطريقة | حالة الاستخدام | حد المعدل | الانتهاء |\n|--------|----------|------------|--------|\n| **Mind Key** | وكلاء LLM، الأدوات المؤتمتة | لا شيء (ترويسة) / 60 دقيقة (استعلام) | أبدًا |\n| **JWT** | واجهة الإنسان، عمليات الحساب | لا شيء | 7 أيام |\n\n## Mind Key (للوكلاء)\n\nMind Key رمز API محدود بمستأجر. يُصادق بيانات عقل واحد\n(الذكريات، المهام، الدردشة، السكربتات، إلخ). استخدمه لـ:\n\n- وكلاء LLM الذين يستدعون الـ API\n- سكربتات الأتمتة الخلفية\n- إعداد خادم MCP\n- أي تكامل طويل الأمد\n\n### مصادقة الترويسة (موصى بها)\n\n```bash\ncurl -H \"Authorization: Bearer mk_yourMindKeyHere\" \\\n     https://synapse.schaefer.zone/memory/recall\n```\n\n### معامل الاستعلام (للأدوات التي تفتح عناوين URL فقط)\n\n```bash\ncurl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere\n```\n\n> [!WARNING]\n> معامل الاستعلام `?key=` محدود بـ **60 طلبًا في الدقيقة**.\n> ترويسة Bearer بلا حد معدل. استخدم الترويسة كلما دعم عميلك\n> الترويسات المخصصة.\n\n### إنشاء Mind Key\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\nتتضمن الاستجابة `mind_key` — **احفظه فورًا**، يُعرض مرة واحدة فقط.\n\n### سرد عقلك\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds\n```\n\n### حذف عقل (لا يمكن التراجع!)\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds/m_xyz789\n```\n\n## JWT (للبشر)\n\nتُصادق JWTs **حساب المستخدم**، لا عقلًا محددًا. استخدمها لـ:\n\n- تسجيل الحساب والدخول\n- إنشاء / سرد / حذف العقول\n- مشاركة العقول مع مستخدمين آخرين\n- إدارة اشتراك Web Push\n\n### تسجيل\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\nيُرجع: `{ \"jwt\": \"eyJ...\", \"user\": {...} }`\n\n### تسجيل الدخول\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\nيُرجع: `{ \"jwt\": \"eyJ...\", \"user\": {...} }`\n\n### انتهاء JWT\n\nتنتهي JWTs بعد **7 أيام**. عند انتهاء JWT، استدعِ `/login` مرة أخرى للحصول\nعلى واحد جديد. لا تنتهي Mind Key أبدًا، لذا تستمر تكاملات الوكلاء\nبالعمل.\n\n## أفضل ممارسات الأمان\n\n> [!CRITICAL]\n> - **لا تلتزم Mind Keys في git أبدًا.** استخدم متغيرات البيئة.\n> - **لا تسجّل Mind Keys أبدًا.** قنّعها في السجلات (`mk_***...***xyz`).\n> - **دوّر المفاتيح** إذا اشتبهت في تسريب (احذف العقل، أنشئ واحدًا جديدًا).\n> - **استخدم عقلًا واحدًا لكل مشروع** لتحديد دائرة الضرر إذا تسرب مفتاح.\n\n### نمط متغير البيئة\n\n```bash\n# .env (لا تلتزم هذا الملف أبدًا)\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\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## نمط العقول المتعددة\n\nيستطيع كل مستخدم امتلاك عقول متعددة. أنماط شائعة:\n\n| اسم العقل | الغرض |\n|-----------|---------|\n| `work` | ذكريات العمل |\n| `personal` | التفضيلات الشخصية، العائلة |\n| `project-synapse` | سياق مشروع محدد |\n| `learning-german` | تقدّم التعلم |\n| `assistant-default` | بديل للأغراض العامة |\n\nاستخدم Mind Keys مختلفة لجلسات LLM مختلفة للحفاظ على عزل السياقات.\n\n## حدود المعدل\n\n| طريقة المصادقة | الحد | النطاق |\n|-------------|-------|-------|\n| Mind Key (ترويسة) | لا شيء | لكل عقل |\n| Mind Key (?key=) | 60/دقيقة | لكل IP |\n| JWT (ترويسة) | لا شيء | لكل مستخدم |\n| نقاط النهاية العامة | لا شيء | عام |\n\nتُتضمن ترويسات حد المعدل (`X-RateLimit-Limit`، `X-RateLimit-Remaining`، `Retry-After`)\nفي الاستجابات عند الاقتضاء.\n\n## الخطوات التالية\n\n- [Mind Key مقابل JWT](/docs/getting-started/mind-key-vs-jwt) — متى تستخدم أيًّا منهما\n- [Memory API](/docs/api/memory) — ما تستطيع فعله بـ Mind Key\n- [User API](/docs/api/user) — إدارة الحساب بـ JWTs\n","content_html":"<h1>المصادقة و Mind Keys</h1>\n<p>يستخدم Synapse طريقتين للمصادقة، كلٌّ مُحسّنة لحالة استخدام مختلفة.\nفهم الفرق أساسي لبناء تكاملات موثوقة.</p>\n<h2>طريقتان للمصادقة</h2>\n<table>\n<thead>\n<tr>\n<th>الطريقة</th>\n<th>حالة الاستخدام</th>\n<th>حد المعدل</th>\n<th>الانتهاء</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><strong>Mind Key</strong></td>\n<td>وكلاء LLM، الأدوات المؤتمتة</td>\n<td>لا شيء (ترويسة) / 60 دقيقة (استعلام)</td>\n<td>أبدًا</td>\n</tr>\n<tr>\n<td><strong>JWT</strong></td>\n<td>واجهة الإنسان، عمليات الحساب</td>\n<td>لا شيء</td>\n<td>7 أيام</td>\n</tr>\n</tbody></table>\n<h2>Mind Key (للوكلاء)</h2>\n<p>Mind Key رمز API محدود بمستأجر. يُصادق بيانات عقل واحد\n(الذكريات، المهام، الدردشة، السكربتات، إلخ). استخدمه لـ:</p>\n<ul>\n<li>وكلاء LLM الذين يستدعون الـ API</li>\n<li>سكربتات الأتمتة الخلفية</li>\n<li>إعداد خادم MCP</li>\n<li>أي تكامل طويل الأمد</li>\n</ul>\n<h3>مصادقة الترويسة (موصى بها)</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>معامل الاستعلام (للأدوات التي تفتح عناوين URL فقط)</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=` محدود بـ **60 طلبًا في الدقيقة**.\nترويسة Bearer بلا حد معدل. استخدم الترويسة كلما دعم عميلك\nالترويسات المخصصة.</div><h3>إنشاء Mind Key</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>تتضمن الاستجابة <code>mind_key</code> — <strong>احفظه فورًا</strong>، يُعرض مرة واحدة فقط.</p>\n<h3>سرد عقلك</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>حذف عقل (لا يمكن التراجع!)</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 (للبشر)</h2>\n<p>تُصادق JWTs <strong>حساب المستخدم</strong>، لا عقلًا محددًا. استخدمها لـ:</p>\n<ul>\n<li>تسجيل الحساب والدخول</li>\n<li>إنشاء / سرد / حذف العقول</li>\n<li>مشاركة العقول مع مستخدمين آخرين</li>\n<li>إدارة اشتراك Web Push</li>\n</ul>\n<h3>تسجيل</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>يُرجع: <code>{ &quot;jwt&quot;: &quot;eyJ...&quot;, &quot;user&quot;: {...} }</code></p>\n<h3>تسجيل الدخول</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>يُرجع: <code>{ &quot;jwt&quot;: &quot;eyJ...&quot;, &quot;user&quot;: {...} }</code></p>\n<h3>انتهاء JWT</h3>\n<p>تنتهي JWTs بعد <strong>7 أيام</strong>. عند انتهاء JWT، استدعِ <code>/login</code> مرة أخرى للحصول\nعلى واحد جديد. لا تنتهي Mind Key أبدًا، لذا تستمر تكاملات الوكلاء\nبالعمل.</p>\n<h2>أفضل ممارسات الأمان</h2>\n<div class=\"callout callout-critical\"></div><h3>نمط متغير البيئة</h3>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># .env (لا تلتزم هذا الملف أبدًا)</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</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>نمط العقول المتعددة</h2>\n<p>يستطيع كل مستخدم امتلاك عقول متعددة. أنماط شائعة:</p>\n<table>\n<thead>\n<tr>\n<th>اسم العقل</th>\n<th>الغرض</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>work</code></td>\n<td>ذكريات العمل</td>\n</tr>\n<tr>\n<td><code>personal</code></td>\n<td>التفضيلات الشخصية، العائلة</td>\n</tr>\n<tr>\n<td><code>project-synapse</code></td>\n<td>سياق مشروع محدد</td>\n</tr>\n<tr>\n<td><code>learning-german</code></td>\n<td>تقدّم التعلم</td>\n</tr>\n<tr>\n<td><code>assistant-default</code></td>\n<td>بديل للأغراض العامة</td>\n</tr>\n</tbody></table>\n<p>استخدم Mind Keys مختلفة لجلسات LLM مختلفة للحفاظ على عزل السياقات.</p>\n<h2>حدود المعدل</h2>\n<table>\n<thead>\n<tr>\n<th>طريقة المصادقة</th>\n<th>الحد</th>\n<th>النطاق</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (ترويسة)</td>\n<td>لا شيء</td>\n<td>لكل عقل</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/دقيقة</td>\n<td>لكل IP</td>\n</tr>\n<tr>\n<td>JWT (ترويسة)</td>\n<td>لا شيء</td>\n<td>لكل مستخدم</td>\n</tr>\n<tr>\n<td>نقاط النهاية العامة</td>\n<td>لا شيء</td>\n<td>عام</td>\n</tr>\n</tbody></table>\n<p>تُتضمن ترويسات حد المعدل (<code>X-RateLimit-Limit</code>، <code>X-RateLimit-Remaining</code>، <code>Retry-After</code>)\nفي الاستجابات عند الاقتضاء.</p>\n<h2>الخطوات التالية</h2>\n<ul>\n<li><a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key مقابل JWT</a> — متى تستخدم أيًّا منهما</li>\n<li><a href=\"/docs/api/memory\">Memory API</a> — ما تستطيع فعله بـ Mind Key</li>\n<li><a href=\"/docs/api/user\">User API</a> — إدارة الحساب بـ JWTs</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"]}