OAuth
يدعم OpenClaw «مصادقة الاشتراك» عبر OAuth للموفّرين الذين يقدّمونها (ولا سيما OpenAI Codex (ChatGPT OAuth)). لاشتراكات Anthropic، استخدم تدفّق setup-token. تشرح هذه الصفحة:- كيف يعمل تبادل الرموز في OAuth (PKCE)
- أين يتم تخزين الرموز (ولماذا)
- كيفية التعامل مع حسابات متعددة (الملفات الشخصية + التجاوزات لكل جلسة)
بنك الرمز المميز (لماذا يوجد)
غالبًا ما تقوم موفّرات OAuth بإصدار رمز تحديث جديد أثناء تدفّقات تسجيل الدخول/التحديث. بعض الموفّرين (أو عملاء OAuth) قد يُبطلون رموز التحديث الأقدم عند إصدار رمز جديد للمستخدم/التطبيق نفسه. الأعراض العملية:- تسجّل الدخول عبر OpenClaw وأيضًا عبر Claude Code / Codex CLI → في وقت لاحق يتم «تسجيل الخروج» عشوائيًا من أحدهما
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:
تبادل 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. المفضّل: وكلاء منفصلون
إذا أردت ألا يتفاعل «الشخصي» و«العمل» إطلاقًا، استخدم وكلاء معزولين (جلسات + بيانات اعتماد + مساحة عمل منفصلة):2. متقدّم: ملفات شخصية متعددة داخل وكيل واحد
يدعمauth-profiles.json معرّفات ملفات شخصية متعددة للموفّر نفسه.
اختر أي ملف شخصي يُستخدم:
- عالميًا عبر ترتيب التهيئة (
auth.order) - لكل جلسة عبر
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(يعرضauth[])
- /concepts/model-failover (قواعد التناوب + فترات التهدئة)
- /tools/slash-commands (سطح الأوامر)