Skip to content

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

http
POST /auth/get-one-time-token
Authorization: Bearer <user_session_token>
Content-Type: application/json

{
    "client_id": "69c50a2d50f7b939923a469b"
}

Javob

json
{
    "code": 0,
    "message": "Success",
    "data": "eyJhbGciOiJIUzI1NiIs..."
}

Token maydonlari ​

MaydonTavsif
issBeruvchi: https://{subdomain}.{domain}
audQabul qiluvchi: mijozingizning redirect_uri manzili
jtiTokenning noyob identifikatori (UUID)
nbfShu vaqtdan oldin token haqiqiy emas
account_idMijoz akkaunti
user_idIlovangizni ochgan Bito foydalanuvchisi
subdomainAkkaunt subdomeni
client_idSizning OAuth client id
expBerilganidan 24 soat keyin tugaydi

Tekshirish ​

Token HS256 algoritmi va mijoz siringiz bilan imzolangan. Ichidagi ma'lumotga ishonishdan oldin imzoni tekshiring.

js
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.

Bito 2.0 Integration API