Fundamentals

OAuth

OpenClaw از «احراز هویت اشتراکی» از طریق OAuth برای ارائه‌دهندگانی که آن را ارائه می‌کنند پشتیبانی می‌کند (به‌ویژه OpenAI Codex (ChatGPT OAuth)). برای Anthropic، تفکیک عملی اکنون چنین است:

  • کلید API Anthropic: صورت‌حساب معمول API Anthropic
  • Anthropic Claude CLI / احراز هویت اشتراکی داخل OpenClaw: کارکنان Anthropic به ما گفته‌اند این نوع استفاده دوباره مجاز است

OAuth در OpenAI Codex به‌صراحت برای استفاده در ابزارهای خارجی مانند OpenClaw پشتیبانی می‌شود. این صفحه توضیح می‌دهد:

برای Anthropic در محیط تولید، احراز هویت با کلید API مسیر پیشنهادی امن‌تری است.

  • تبادل توکن OAuth چگونه کار می‌کند (PKCE)
  • توکن‌ها کجا ذخیره می‌شوند (و چرا)
  • چگونه چند حساب را مدیریت کنید (پروفایل‌ها + بازنویسی‌های هر نشست)

OpenClaw همچنین از Pluginهای ارائه‌دهنده پشتیبانی می‌کند که جریان‌های OAuth یا کلید API خودشان را همراه دارند. آن‌ها را با این دستور اجرا کنید:

openclaw models auth login --provider <id>

مخزن جذب توکن (چرا وجود دارد)

ارائه‌دهندگان OAuth معمولاً در جریان‌های ورود/تازه‌سازی، یک توکن تازه‌سازی جدید صادر می‌کنند. برخی ارائه‌دهندگان (یا کلاینت‌های OAuth) ممکن است وقتی برای همان کاربر/برنامه توکن تازه‌سازی جدیدی صادر می‌شود، توکن‌های تازه‌سازی قدیمی‌تر را نامعتبر کنند.

نشانه عملی:

  • از طریق OpenClaw و از طریق Claude Code / Codex CLI وارد می‌شوید → یکی از آن‌ها بعداً به‌صورت تصادفی «از حساب خارج می‌شود»

برای کاهش این مشکل، OpenClaw با auth-profiles.json مانند یک مخزن جذب توکن رفتار می‌کند:

  • زمان اجرا اعتبارنامه‌ها را از یک مکان می‌خواند
  • می‌توانیم چند پروفایل را نگه داریم و آن‌ها را به‌صورت قطعی مسیریابی کنیم
  • استفاده دوباره از CLI خارجی به ارائه‌دهنده وابسته است: Codex CLI می‌تواند یک پروفایل خالی openai-codex:default را راه‌اندازی اولیه کند، اما وقتی OpenClaw یک پروفایل OAuth محلی داشته باشد، توکن تازه‌سازی محلی مرجع است؛ یکپارچه‌سازی‌های دیگر می‌توانند همچنان به‌صورت خارجی مدیریت شوند و ذخیره احراز هویت CLI خود را دوباره بخوانند
  • مسیرهای وضعیت و راه‌اندازی که از قبل مجموعه ارائه‌دهندگان پیکربندی‌شده را می‌شناسند، کشف CLI خارجی را به همان مجموعه محدود می‌کنند، بنابراین برای یک راه‌اندازی تک‌ارائه‌دهنده، ذخیره ورود CLI نامرتبط بررسی نمی‌شود

ذخیره‌سازی (توکن‌ها کجا قرار می‌گیرند)

اسرار در ذخیره‌های احراز هویت عامل ذخیره می‌شوند:

  • پروفایل‌های احراز هویت (OAuth + کلیدهای API + ارجاع‌های اختیاری در سطح مقدار): ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • فایل سازگاری قدیمی: ~/.openclaw/agents/<agentId>/agent/auth.json (ورودی‌های ثابت api_key هنگام کشف پاک‌سازی می‌شوند)

فایل قدیمی فقط برای واردسازی (هنوز پشتیبانی می‌شود، اما ذخیره اصلی نیست):

  • ~/.openclaw/credentials/oauth.json (در اولین استفاده به auth-profiles.json وارد می‌شود)

همه موارد بالا به $OPENCLAW_STATE_DIR نیز احترام می‌گذارند (بازنویسی مسیر وضعیت). مرجع کامل: /gateway/configuration

برای ارجاع‌های ثابت اسرار و رفتار فعال‌سازی اسنپ‌شات زمان اجرا، مدیریت اسرار را ببینید.

وقتی یک عامل ثانویه پروفایل احراز هویت محلی ندارد، OpenClaw از وراثت خواندنی از ذخیره عامل پیش‌فرض/اصلی استفاده می‌کند. هنگام خواندن، auth-profiles.json عامل اصلی را کپی نمی‌کند. توکن‌های تازه‌سازی OAuth به‌ویژه حساس هستند: جریان‌های کپی معمول به‌صورت پیش‌فرض آن‌ها را رد می‌کنند، چون برخی ارائه‌دهندگان پس از استفاده توکن‌های تازه‌سازی را می‌چرخانند یا نامعتبر می‌کنند. وقتی یک عامل به حساب مستقل نیاز دارد، ورود OAuth جداگانه‌ای برای آن پیکربندی کنید.

سازگاری با توکن قدیمی Anthropic

OpenClaw همچنین setup-token متعلق به Anthropic را به‌عنوان مسیر پشتیبانی‌شده احراز هویت با توکن ارائه می‌کند، اما اکنون وقتی Claude CLI و claude -p در دسترس باشند، استفاده دوباره از آن‌ها را ترجیح می‌دهد.

مهاجرت Anthropic Claude CLI

OpenClaw دوباره از استفاده دوباره Anthropic Claude CLI پشتیبانی می‌کند. اگر از قبل روی میزبان ورود محلی Claude دارید، فرایند onboarding/configure می‌تواند مستقیماً از آن استفاده کند.

تبادل OAuth (ورود چگونه کار می‌کند)

جریان‌های ورود تعاملی OpenClaw در @mariozechner/pi-ai پیاده‌سازی شده‌اند و به ویزاردها/دستورها متصل هستند.

setup-token متعلق به Anthropic

شکل جریان:

  1. setup-token یا paste-token متعلق به Anthropic را از OpenClaw شروع کنید
  2. OpenClaw اعتبارنامه Anthropic حاصل را در یک پروفایل احراز هویت ذخیره می‌کند
  3. انتخاب مدل روی anthropic/... می‌ماند
  4. پروفایل‌های احراز هویت Anthropic موجود برای بازگشت/کنترل ترتیب همچنان در دسترس می‌مانند

OpenAI Codex (ChatGPT OAuth)

OAuth در OpenAI Codex به‌صراحت برای استفاده خارج از Codex CLI، از جمله گردش‌کارهای OpenClaw، پشتیبانی می‌شود.

شکل جریان (PKCE):

  1. verifier/challenge مربوط به PKCE + state تصادفی تولید کنید
  2. https://auth.openai.com/oauth/authorize?... را باز کنید
  3. تلاش کنید callback را روی http://127.0.0.1:1455/auth/callback دریافت کنید
  4. اگر callback نتواند bind شود (یا محیط شما remote/headless است)، URL/code تغییرمسیر را paste کنید
  5. در https://auth.openai.com/oauth/token تبادل کنید
  6. accountId را از توکن دسترسی استخراج کنید و { access, refresh, expires, accountId } را ذخیره کنید

مسیر ویزارد openclaw onboard → گزینه احراز هویت openai-codex است.

تازه‌سازی + انقضا

پروفایل‌ها یک timestamp به نام expires ذخیره می‌کنند.

در زمان اجرا:

  • اگر expires در آینده باشد → از توکن دسترسی ذخیره‌شده استفاده می‌شود
  • اگر منقضی شده باشد → تازه‌سازی انجام می‌شود (زیر file lock) و اعتبارنامه‌های ذخیره‌شده بازنویسی می‌شوند
  • اگر یک عامل ثانویه یک پروفایل OAuth ارث‌بری‌شده از عامل اصلی را بخواند، تازه‌سازی به‌جای کپی کردن توکن تازه‌سازی در ذخیره عامل ثانویه، در ذخیره عامل اصلی نوشته می‌شود
  • استثنا: برخی اعتبارنامه‌های CLI خارجی به‌صورت خارجی مدیریت می‌شوند؛ OpenClaw به‌جای مصرف توکن‌های تازه‌سازی کپی‌شده، آن ذخیره‌های احراز هویت CLI را دوباره می‌خواند. راه‌اندازی اولیه Codex CLI عمداً محدودتر است: یک پروفایل خالی openai-codex:default می‌سازد، سپس تازه‌سازی‌های متعلق به OpenClaw پروفایل محلی را مرجع نگه می‌دارند.

جریان تازه‌سازی خودکار است؛ معمولاً نیازی نیست توکن‌ها را دستی مدیریت کنید.

چند حساب (پروفایل‌ها) + مسیریابی

دو الگو:

1) ترجیحی: عامل‌های جداگانه

اگر می‌خواهید «شخصی» و «کاری» هرگز با هم تعامل نداشته باشند، از عامل‌های ایزوله استفاده کنید (نشست‌ها + اعتبارنامه‌ها + workspace جداگانه):

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[] را نشان می‌دهد)

مستندات مرتبط:

مرتبط