Bir martalik tokenlar
Bir martalik token — bu mijoz siringiz bilan imzolangan JWT, shuning uchun ilovangiz uni Bito'ga murojaat qilmasdan mustaqil tekshira oladi. Aynan shu token Bito tomonidan vidjetingizning iframe URL'iga qo'shiladi va Bito brauzerga serveringiz ishonishi kerak bo'lgan ma'lumot bergan har qanday holatda ishlatiladi.
Token olish
Bito foydalanuvchisining ochiq sessiyasi talab qilinadi — integratsiya tokeni emas. Integratsiya shu akkauntda o'rnatilgan bo'lishi shart: aks holda so'rov Integration is not installed bilan rad etiladi.
So'rov
POST /auth/get-one-time-token
Authorization: Bearer <user_session_token>
Content-Type: application/json
{
"client_id": "69c50a2d50f7b939923a469b"
}Javob
{
"code": 0,
"message": "Success",
"data": "eyJhbGciOiJIUzI1NiIs..."
}Token maydonlari
| Maydon | Tavsif |
|---|---|
iss | Beruvchi: https://{subdomain}.{domain} |
aud | Qabul qiluvchi: mijozingizning redirect_uri manzili |
jti | Tokenning noyob identifikatori (UUID) |
nbf | Shu vaqtdan oldin token haqiqiy emas |
account_id | Mijoz akkaunti |
user_id | Ilovangizni ochgan Bito foydalanuvchisi |
subdomain | Akkaunt subdomeni |
client_id | Sizning OAuth client id |
exp | Berilganidan 24 soat keyin tugaydi |
Tekshirish
Token HS256 algoritmi va mijoz siringiz bilan imzolangan. Ichidagi ma'lumotga ishonishdan oldin imzoni tekshiring.
import jwt from 'jsonwebtoken';
export function verifyOneTimeToken(token, secret, clientId) {
// Imzo noto'g'ri bo'lsa, token muddati tugagan yoki `nbf` hali kelmagan bo'lsa xato beradi.
const claims = jwt.verify(token, secret, { algorithms: ['HS256'] });
if (claims.client_id !== clientId) throw new Error('token boshqa mijozga tegishli');
return { accountId: claims.account_id, userId: claims.user_id };
}WARNING
Imzoni tekshirmasdan tokenni ochmang. jwt.decode brauzer bergan har qanday satrni o'qiydi; tokenni Bito berganini faqat jwt.verify isbotlaydi.
TIP
jti har bir token uchun noyob — qat'iy bir martalik ishlatishni xohlasangiz, ko'rilgan qiymatlarni saqlang. Bito tokenning ishlatilganini kuzatmaydi.
Qabul qiluvchi tomon to'liq Vidjet (iframe ilova) bo'limida tavsiflangan.