OAuth¶
يدعم OpenClaw «مصادقة الاشتراك» عبر OAuth للموفّرين الذين يقدّمونها (ولا سيما OpenAI Codex (ChatGPT OAuth)). لاشتراكات Anthropic، استخدم تدفّق setup-token. تشرح هذه الصفحة:
- كيف يعمل تبادل الرموز في OAuth (PKCE)
- أين يتم تخزين الرموز (ولماذا)
- كيفية التعامل مع حسابات متعددة (الملفات الشخصية + التجاوزات لكل جلسة)
يدعم OpenClaw أيضًا إضافات الموفّر التي تأتي بتدفّقات OAuth أو مفاتيح API خاصة بها. شغّلها عبر:
openclaw models auth login --provider <id>
بنك الرمز المميز (لماذا يوجد)¶
غالبًا ما تقوم موفّرات OAuth بإصدار رمز تحديث جديد أثناء تدفّقات تسجيل الدخول/التحديث. بعض الموفّرين (أو عملاء OAuth) قد يُبطلون رموز التحديث الأقدم عند إصدار رمز جديد للمستخدم/التطبيق نفسه.
الأعراض العملية:
- تسجّل الدخول عبر OpenClaw وأيضًا عبر Claude Code / Codex CLI → في وقت لاحق يتم «تسجيل الخروج» عشوائيًا من أحدهما
لتقليل ذلك، يتعامل OpenClaw مع auth-profiles.json بوصفه مصرفًا للرموز:
- يقرأ وقت التشغيل بيانات الاعتماد من مكان واحد
- يمكننا الاحتفاظ بملفات شخصية متعددة وتوجيهها بشكل حتمي
التخزين (أين تعيش الرموز)¶
تُخزَّن الأسرار لكل وكيل:
- ملفات المصادقة (OAuth + مفاتيح API):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - ذاكرة التخزين المؤقت لوقت التشغيل (تُدار تلقائيًا؛ لا تُعدّلها):
~/.openclaw/agents/<agentId>/agent/auth.json
ملف قديم للاستيراد فقط (ما يزال مدعومًا، لكنه ليس المخزن الرئيسي):
~/.openclaw/credentials/oauth.json(يُستورد إلىauth-profiles.jsonعند أول استخدام)
كل ما سبق يحترم أيضًا $OPENCLAW_STATE_DIR (تجاوز دليل الحالة). المرجع الكامل: /gateway/configuration
Anthropic setup-token (مصادقة الاشتراك)¶
شغّل claude setup-token على أي جهاز، ثم الصقه في OpenClaw:
openclaw models auth setup-token --provider anthropic
إذا أنشأت الرمز في مكان آخر، الصقه يدويًا:
openclaw models auth paste-token --provider anthropic
تحقّق:
openclaw models status
تبادل OAuth (كيف يعمل تسجيل الدخول)¶
تُنفَّذ تدفّقات تسجيل الدخول التفاعلية في OpenClaw ضمن @mariozechner/pi-ai ومتصلة بالمعالجات/الأوامر.
Anthropic (Claude Pro/Max) setup-token¶
شكل التدفّق:
- شغّل
claude setup-token - الصق الرمز في OpenClaw
- خزّنه كملف مصادقة بالرمز (من دون تحديث)
مسار المعالج هو openclaw onboard → خيار المصادقة setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)¶
شكل التدفّق (PKCE):
- توليد مُحقِّق/تحدّي PKCE +
stateعشوائي - فتح
https://auth.openai.com/oauth/authorize?... - محاولة التقاط الاستدعاء الراجع على
http://127.0.0.1:1455/auth/callback - إذا تعذّر ربط الاستدعاء الراجع (أو كنت بعيدًا/من دون واجهة)، الصق عنوان URL/الرمز المُعاد توجيهه
- التبادل عند
https://auth.openai.com/oauth/token - استخراج
accountIdمن رمز الوصول وتخزين{ access, refresh, expires, accountId }
مسار المعالج هو openclaw onboard → خيار المصادقة openai-codex.
التحديث + الانتهاء¶
تخزّن الملفات الشخصية طابعًا زمنيًا لـ expires.
أثناء التشغيل:
- إذا كان
expiresفي المستقبل → استخدم رمز الوصول المخزّن - إذا انتهت الصلاحية → حدّث (تحت قفل ملف) واستبدل بيانات الاعتماد المخزّنة
تدفّق التحديث تلقائي؛ عادةً لا تحتاج إلى إدارة الرموز يدويًا.
حسابات متعددة (ملفات شخصية) + التوجيه¶
نمطـان:
1. المفضّل: وكلاء منفصلون¶
إذا أردت ألا يتفاعل «الشخصي» و«العمل» إطلاقًا، استخدم وكلاء معزولين (جلسات + بيانات اعتماد + مساحة عمل منفصلة):
openclaw agents add work
openclaw agents add personal
ثم هيّئ المصادقة لكل وكيل (المعالج) ووجّه الدردشات إلى الوكيل المناسب.
2. متقدّم: ملفات شخصية متعددة داخل وكيل واحد¶
يدعم auth-profiles.json معرّفات ملفات شخصية متعددة للموفّر نفسه.
اختر أي ملف شخصي يُستخدم:
- عالميًا عبر ترتيب التهيئة (
auth.order) - لكل جلسة عبر
/model ...@<profileId>
مثال (تجاوز الجلسة):
/model Opus@anthropic:work
كيفية معرفة معرّفات الملفات الشخصية الموجودة:
openclaw channels list --json(يعرضauth[])
مستندات ذات صلة:
- /concepts/model-failover (قواعد التناوب + فترات التهدئة)
- /tools/slash-commands (سطح الأوامر)