JSON Web Token nədir?

JSON Web Token iki tərəf (məsələn. backend, frontend) arasında təhlükəsiz əlaqəni təmin etmək üçün istifadə olunur.Bunun təhlükəsiz olma səbəbi məlumatların HMAC alqoritmi ilə şifrələnməsidir.Authorization,istifadəçi giriş etdikdən sonra APİ hissəsinə istək göndərərkən istəyi göndərənin istifadəçini olduğunu  doğrulamaq üçün istifadə edilir.

JSON Web Token necə işləyir?

JWS, HMAC alqoritmindən istifadə edərək istifadəçi tərəfindən verilən json strukturunu verilmiş açarla şifrələyir.Müxtəlif istifadə nümunələri də var. Məsələn, müxtəlif alqoritmlərdən istifadə edərək birbaşa tokenlərə çevirmək.Əslində, burada necə işlədiyini başa düşmək üçün alqoritmləri başa düşməliyik, lakin ümumilikdə iş məntiqi json obyektini açarla şifrələməkdir.

JSON Web Token-dən necə istifadə etməliyik?

JSON Web Token necə istifadə olunduğunu göstərmək üçün javascript-dən istifadə edəcəyəm, lakin başqa dillər üçün də kitabxanalar var. İndi bir az javascript kodu yazacam.

const jwt = require('jsonwebtoken')


function create(json) {
    return jwt.sign(json,"test")
}

var json = {
    name:"test",
    id:1234
}

var JWT = create(json)

console.log(JWT)
console.log(jwt.verify(JWT,"test"))

Kodumuz olduqca sadədir, əvvəlcə bizim üçün "jwt"yaradacaq funksiyamızı yazdıq. Funksiya daxilindəki "test" bizim açarımızdır. Sonra json hazırladıq və onu funksiyaya verdik, bu da bizə "token" qaytardı. Nəhayət, açardan istifadə edərək tokenimizi yenidən json obyektinə çevirdik.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiZGVuZW1lX3VzZXIiLCJpZCI6MTIzNCwiaWF0IjoxNjIzNzU2MDczfQ.TajoO_pGEIj6qFX-PaXRwQU-iRsICsvOvVdfXVyXrp4
{ name: 'deneme_user', id: 1234, iat: 1623756073 }

Gördüyünüz kimi jwt-dən istifadə etmək olduqca asandır.

JSON Web Tokenlərindən istifadə etməlisiniz?

Əslində, bu, tətbiqinizdən asılıdır, lakin jws-dən istifadə etmək "session"-dan daha təhlükəsizdir. Məsələn, discord jws-dən istifadə edir. Öz tokeninizi götürsəniz və ona baxsanız, onun da jws token strukturuna uyğun olduğunu görəcəksiniz.Discord-da mesaj sorğusu göndərdiyimiz zaman, tokenimiz də bu sorğunun "header" hissəsində göndərilir, beləliklə, discord həm göndərəni aşkarlaya, həm də mesajın göndərilib-göndəriləməyəcəyinə qərar verə bilər.Nəticə etibarı ilə situasiyadan asılı olaraq dəyişir, fikrimcə, tətbiqinizdə authentication varsa, jwt istifadəsinə üstünlük verilməlidir.

Kanan Mirzayev
Full Stack Web Developer

Bir proqramçını tanımağın ən yaxşı yolu onun yazdığı kodlara baxmaqdır.Github hesabıma keçid edə bilərsiniz.

Bir şərh yazın

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir.

0 Şərh