---
read_when:
    - در حال تأیید درخواست‌های جفت‌سازی دستگاه هستید
    - باید توکن‌های دستگاه را تعویض یا باطل کنید
summary: مرجع CLI برای `openclaw devices` (جفت‌سازی دستگاه + چرخش/ابطال توکن)
title: دستگاه‌ها
x-i18n:
    generated_at: "2026-05-11T20:28:33Z"
    model: gpt-5.5
    provider: openai
    source_hash: b38caf47697d5fd6c630285c53919f3a5eaf704b1992e57adb1902e20e2a0fc0
    source_path: cli/devices.md
    workflow: 16
---

# `openclaw devices`

درخواست‌های جفت‌سازی دستگاه و توکن‌های محدود به دستگاه را مدیریت کنید.

## فرمان‌ها

### `openclaw devices list`

درخواست‌های جفت‌سازی در انتظار و دستگاه‌های جفت‌شده را فهرست می‌کند.

```
openclaw devices list
openclaw devices list --json
```

خروجی درخواست‌های در انتظار، دسترسی درخواست‌شده را کنار دسترسی تأییدشدهٔ فعلی دستگاه نشان می‌دهد، در صورتی که دستگاه از قبل جفت شده باشد. این کار ارتقاهای دامنه/نقش را صریح می‌کند، به‌جای اینکه شبیه از دست رفتن جفت‌سازی به نظر برسد.

### `openclaw devices remove <deviceId>`

یک ورودی دستگاه جفت‌شده را حذف می‌کند.

وقتی با توکن دستگاه جفت‌شده احراز هویت شده‌اید، فراخوان‌های غیرمدیر فقط می‌توانند ورودی دستگاه **خودشان** را حذف کنند. حذف دستگاه دیگر به `operator.admin` نیاز دارد.

```
openclaw devices remove <deviceId>
openclaw devices remove <deviceId> --json
```

### `openclaw devices clear --yes [--pending]`

دستگاه‌های جفت‌شده را به‌صورت دسته‌جمعی پاک می‌کند.

```
openclaw devices clear --yes
openclaw devices clear --yes --pending
openclaw devices clear --yes --pending --json
```

### `openclaw devices approve [requestId] [--latest]`

یک درخواست جفت‌سازی دستگاه در انتظار را با `requestId` دقیق تأیید می‌کند. اگر `requestId` حذف شود یا `--latest` پاس داده شود، OpenClaw فقط درخواست در انتظار انتخاب‌شده را چاپ می‌کند و خارج می‌شود؛ پس از بررسی جزئیات، تأیید را دوباره با شناسهٔ دقیق درخواست اجرا کنید.

<Note>
اگر دستگاه با جزئیات احراز هویت تغییرکرده (نقش، دامنه‌ها، یا کلید عمومی) دوباره برای جفت‌سازی تلاش کند، OpenClaw ورودی در انتظار قبلی را جایگزین می‌کند و یک `requestId` جدید صادر می‌کند. درست پیش از تأیید، `openclaw devices list` را اجرا کنید تا از شناسهٔ فعلی استفاده شود.
</Note>

اگر دستگاه از قبل جفت شده باشد و دامنه‌های گسترده‌تر یا نقش گسترده‌تری درخواست کند، OpenClaw تأیید موجود را حفظ می‌کند و یک درخواست ارتقای در انتظار جدید می‌سازد. ستون‌های `Requested` و `Approved` را در `openclaw devices list` بررسی کنید یا از `openclaw devices approve --latest` استفاده کنید تا پیش از تأیید، ارتقای دقیق را پیش‌نمایش کنید.

اگر Gateway به‌صراحت با `gateway.nodes.pairing.autoApproveCidrs` پیکربندی شده باشد، درخواست‌های بار اول `role: node` از IPهای مشتری منطبق می‌توانند پیش از ظاهر شدن در این فهرست تأیید شوند. این سیاست به‌صورت پیش‌فرض غیرفعال است و هرگز برای مشتریان اپراتور/مرورگر یا درخواست‌های ارتقا اعمال نمی‌شود.

```
openclaw devices approve
openclaw devices approve <requestId>
openclaw devices approve --latest
```

### `openclaw devices reject <requestId>`

یک درخواست جفت‌سازی دستگاه در انتظار را رد می‌کند.

```
openclaw devices reject <requestId>
```

### `openclaw devices rotate --device <id> --role <role> [--scope <scope...>]`

یک توکن دستگاه را برای نقشی مشخص می‌چرخاند (با امکان به‌روزرسانی دامنه‌ها).
نقش هدف باید از قبل در قرارداد جفت‌سازی تأییدشدهٔ همان دستگاه وجود داشته باشد؛ چرخش نمی‌تواند نقش تأییدنشدهٔ جدیدی صادر کند.
اگر `--scope` را حذف کنید، اتصال‌های دوبارهٔ بعدی با توکن چرخانده‌شدهٔ ذخیره‌شده، از دامنه‌های تأییدشدهٔ کش‌شدهٔ همان توکن دوباره استفاده می‌کنند. اگر مقدارهای صریح `--scope` را پاس دهید، همان‌ها به مجموعهٔ دامنهٔ ذخیره‌شده برای اتصال‌های دوبارهٔ آینده با توکن کش‌شده تبدیل می‌شوند.
فراخوان‌های غیرمدیرِ دستگاه جفت‌شده فقط می‌توانند توکن دستگاه **خودشان** را بچرخانند.
مجموعهٔ دامنهٔ توکن هدف باید در محدودهٔ دامنه‌های اپراتورِ خود نشست فراخوان باقی بماند؛ چرخش نمی‌تواند توکن اپراتور گسترده‌تری نسبت به آنچه فراخوان از قبل دارد صادر یا حفظ کند.

```
openclaw devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write
```

فرادادهٔ چرخش را به‌صورت JSON برمی‌گرداند. اگر فراخوان در حال چرخاندن توکن خودش باشد و با همان توکن دستگاه احراز هویت شده باشد، پاسخ همچنین شامل توکن جایگزین است تا مشتری بتواند پیش از اتصال دوباره آن را پایدار کند. چرخش‌های مشترک/مدیر توکن bearer را بازتاب نمی‌دهند.

### `openclaw devices revoke --device <id> --role <role>`

یک توکن دستگاه را برای نقشی مشخص لغو می‌کند.

فراخوان‌های غیرمدیرِ دستگاه جفت‌شده فقط می‌توانند توکن دستگاه **خودشان** را لغو کنند.
لغو توکن دستگاه دیگر به `operator.admin` نیاز دارد.
مجموعهٔ دامنهٔ توکن هدف نیز باید در محدودهٔ دامنه‌های اپراتورِ خود نشست فراخوان جا بگیرد؛ فراخوان‌هایی که فقط جفت‌سازی دارند نمی‌توانند توکن‌های اپراتور مدیر/نوشتن را لغو کنند.

```
openclaw devices revoke --device <deviceId> --role node
```

نتیجهٔ لغو را به‌صورت JSON برمی‌گرداند.

## گزینه‌های رایج

- `--url <url>`: نشانی WebSocket Gateway (وقتی پیکربندی شده باشد، پیش‌فرض `gateway.remote.url` است).
- `--token <token>`: توکن Gateway (در صورت نیاز).
- `--password <password>`: گذرواژهٔ Gateway (احراز هویت با گذرواژه).
- `--timeout <ms>`: مهلت زمانی RPC.
- `--json`: خروجی JSON (برای اسکریپت‌نویسی توصیه می‌شود).

<Warning>
وقتی `--url` را تنظیم می‌کنید، CLI به اطلاعات اعتبارسنجی پیکربندی یا محیط برنمی‌گردد. `--token` یا `--password` را صریح پاس دهید. نبود اطلاعات اعتبارسنجی صریح خطا است.
</Warning>

## یادداشت‌ها

- چرخش توکن یک توکن جدید برمی‌گرداند (حساس). با آن مثل یک راز رفتار کنید.
- این فرمان‌ها به دامنهٔ `operator.pairing` (یا `operator.admin`) نیاز دارند. برخی تأییدها همچنین نیاز دارند فراخوان دامنه‌های اپراتوری را داشته باشد که دستگاه هدف صادر یا به ارث خواهد برد؛ [دامنه‌های اپراتور](/fa/gateway/operator-scopes) را ببینید.
- `gateway.nodes.pairing.autoApproveCidrs` یک سیاست اختیاری Gateway فقط برای جفت‌سازی دستگاه node تازه است؛ اختیار تأیید CLI را تغییر نمی‌دهد.
- چرخش و لغو توکن داخل مجموعهٔ نقش‌های جفت‌سازی تأییدشده و خط مبنای دامنهٔ تأییدشده برای همان دستگاه باقی می‌مانند. یک ورودی توکن کش‌شدهٔ سرگردان، هدف مدیریت توکن اعطا نمی‌کند.
- برای نشست‌های توکن دستگاه جفت‌شده، مدیریت بین دستگاه‌ها فقط مخصوص مدیر است: `remove`، `rotate` و `revoke` فقط برای خود کاربر هستند، مگر اینکه فراخوان `operator.admin` داشته باشد.
- تغییر توکن نیز در دامنهٔ فراخوان محدود است: نشستی که فقط جفت‌سازی دارد نمی‌تواند توکنی را بچرخاند یا لغو کند که در حال حاضر `operator.admin` یا `operator.write` را حمل می‌کند.
- `devices clear` عمداً پشت `--yes` قرار داده شده است.
- اگر دامنهٔ جفت‌سازی روی local loopback در دسترس نباشد (و `--url` صریحی پاس داده نشده باشد)، list/approve می‌تواند از یک جایگزین جفت‌سازی محلی استفاده کند.
- `devices approve` پیش از صدور توکن‌ها به شناسهٔ درخواست صریح نیاز دارد؛ حذف `requestId` یا پاس دادن `--latest` فقط جدیدترین درخواست در انتظار را پیش‌نمایش می‌کند.

## چک‌لیست بازیابی drift توکن

وقتی Control UI یا مشتریان دیگر مدام با `AUTH_TOKEN_MISMATCH`، `AUTH_DEVICE_TOKEN_MISMATCH`، یا `AUTH_SCOPE_MISMATCH` شکست می‌خورند، از این استفاده کنید.

1. منبع فعلی توکن gateway را تأیید کنید:

```bash
openclaw config get gateway.auth.token
```

2. دستگاه‌های جفت‌شده را فهرست کنید و شناسهٔ دستگاه تحت تأثیر را شناسایی کنید:

```bash
openclaw devices list
```

3. توکن اپراتور را برای دستگاه تحت تأثیر بچرخانید:

```bash
openclaw devices rotate --device <deviceId> --role operator
```

4. اگر چرخش کافی نیست، جفت‌سازی کهنه را حذف کنید و دوباره تأیید کنید:

```bash
openclaw devices remove <deviceId>
openclaw devices list
openclaw devices approve <requestId>
```

5. اتصال مشتری را با توکن/گذرواژهٔ مشترک فعلی دوباره امتحان کنید.

یادداشت‌ها:

- تقدم عادی احراز هویت در اتصال دوباره ابتدا توکن/گذرواژهٔ مشترک صریح، سپس `deviceToken` صریح، سپس توکن دستگاه ذخیره‌شده، و سپس توکن bootstrap است.
- بازیابی قابل‌اعتماد `AUTH_TOKEN_MISMATCH` می‌تواند به‌طور موقت هم توکن مشترک و هم توکن دستگاه ذخیره‌شده را برای همان تلاش دوبارهٔ محدودشده با هم بفرستد.
- `AUTH_SCOPE_MISMATCH` یعنی توکن دستگاه شناسایی شده اما مجموعهٔ دامنهٔ درخواست‌شده را حمل نمی‌کند؛ پیش از تغییر احراز هویت مشترک gateway، قرارداد تأیید جفت‌سازی/دامنه را اصلاح کنید.

مرتبط:

- [عیب‌یابی احراز هویت داشبورد](/fa/web/dashboard#if-you-see-unauthorized-1008)
- [عیب‌یابی Gateway](/fa/gateway/troubleshooting#dashboard-control-ui-connectivity)

## مرتبط

- [مرجع CLI](/fa/cli)
- [Nodeها](/fa/nodes)
