Fundamentals

OAuth

Edit source

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

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

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

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

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

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

bash
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 همچنین توکن راه‌اندازی Anthropic را به‌عنوان مسیر پشتیبانی‌شده احراز هویت با توکن ارائه می‌کند، اما اکنون در صورت دسترس بودن، استفاده مجدد از Claude CLI و claude -p را ترجیح می‌دهد.

مهاجرت Anthropic Claude CLI

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

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

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

توکن راه‌اندازی Anthropic

شکل جریان:

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

OpenAI Codex (ChatGPT OAuth)

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

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

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

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

بازخوانی + انقضا

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

در زمان اجرا:

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

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

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

دو الگو:

1) پیشنهادی: عامل‌های جداگانه

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

bash
openclaw agents add workopenclaw agents add personal

سپس احراز هویت را برای هر عامل پیکربندی کنید (جادوگر) و گفتگوها را به عامل درست مسیریابی کنید.

2) پیشرفته: چند پروفایل در یک عامل

auth-profiles.json از چند شناسه پروفایل برای همان ارائه‌دهنده پشتیبانی می‌کند.

انتخاب کنید کدام پروفایل استفاده شود:

  • به‌صورت سراسری از طریق ترتیب پیکربندی (auth.order)
  • برای هر نشست از طریق /model ...@<profileId>

مثال (بازنویسی نشست):

  • /model Opus@anthropic:work

چگونه ببینید چه شناسه‌های پروفایلی وجود دارند:

  • openclaw channels list --json (auth[] را نشان می‌دهد)

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

مرتبط

Was this useful?