توکن اتصال خصوصی
GET/auth/ws/token/
این API یک توکن JWT برای اتصال احراز هویتشده به وبسوکت تولید میکند. این توکن فقط برای کانالهای خصوصی لازم است؛ کانالهای عمومی به توکن نیاز ندارند.
API Key
در صورت استفاده از API Key، دسترسی READ روی کلید الزامی است.
تفاوت دو مقدار احراز هویت:
| مقدار | از کجا میآید؟ | کاربرد |
|---|---|---|
token | پاسخ همین API | احراز هویت اتصال وبسوکت |
websocketAuthParam | پاسخ پروفایل کاربر | ساخت نام کانال خصوصی |
مراحل استفاده از کانال خصوصی:
- مقدار
websocketAuthParamرا از پاسخ پروفایل کاربر بخوانید. - از این API توکن اتصال بگیرید.
- با مقدار
tokenبه وبسوکت وصل شوید. - در کانال خصوصی مورد نظر با الگوی
private:{channelName}#{websocketAuthParam}عضو شوید.
نکتهها:
- مدت اعتبار توکن اتصال: ۱۲۰۰ ثانیه
- در کلاینتهای Centrifugo مقدار
tokenبرگشتی را به گزینه اتصال یا تابعgetTokenبدهید. - در اتصال مستقیم بدون SDK، پیام اتصال خصوصی به شکل
{"connect":{"token":"<CONNECTION_TOKEN>"},"id":1}ارسال میشود. - مقدار
websocketAuthParamتوکن نیست و نیازی به تمدید ندارد.
نمونه درخواست:
curl 'https://apiv2.nobitex.ir/auth/ws/token/' \
-H 'Authorization: Token <USER_TOKEN>'
اتصال با توکن ثابت:
import { Centrifuge } from 'centrifuge';
const client = new Centrifuge('wss://ws.nobitex.ir/connection/websocket', {
token: '<CONNECTION_TOKEN>',
});
client.connect();
دریافت و تمدید خودکار توکن با SDK:
import { Centrifuge, UnauthorizedError } from 'centrifuge';
async function getToken() {
const response = await fetch('https://apiv2.nobitex.ir/auth/ws/token/', {
headers: {
Authorization: 'Token <USER_TOKEN>',
},
});
if (!response.ok) {
if (response.status === 401 || response.status === 403) {
throw new UnauthorizedError('WebSocket authentication failed');
}
throw new Error(`Unexpected status code ${response.status}`);
}
const data = await response.json();
return data.token;
}
const client = new Centrifuge('wss://ws.nobitex.ir/connection/websocket', {
getToken,
});
client.connect();
اتصال مستقیم بدون SDK با توکن:
{
"connect": {
"token": "<CONNECTION_TOKEN>"
},
"id": 1
}
Request
Responses
- 200
- 401
- 403
- 429
موفق
احراز هویت نامعتبر است
دسترسی لازم برای دریافت توکن وجود ندارد
محدودیت فراخوانی یا اتصال رد شده است