
Bir proqramçını tanımağın ən yaxşı yolu onun yazdığı kodlara baxmaqdır.Github hesabıma keçid edə bilərsiniz.
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.
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 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.
Ə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.
Bir şərh yazın