⌗Oddiy cookie yoki localStorageda saqlash:
Cookies.set('token', token)
bu holatda oddiy odam yoki hacker shunchaki u odamni akkauntiga kirish uchun tokenni copy qiladi va o'zining kompyuterida cookie'da yoki localStorageda tokenni o'rniga o'sha boshqani akkaunti tokenini kiritsa va browserni refresh qilsa site uni avtamatik tarzda o'sha odam deb o'ylab platformaga kirgizadi, va hacker u odamni akkauntiga to'liq egalik qila oladi
⌗Http cookie:
res.cookie("token", token, {
httpOnly: true,
secure: true,
sameSite: "strict",
})
bu yerda eng katta farq — frontend bu tokenni ko‘ra olmaydi ham, o‘zgartira olmaydi ham
ya’ni:
- document.cookie orqali o‘qib bo‘lmaydi
- localStorage ga o‘xshab copy qilib bo'lmaydi
consoleorqali boshqa token qo‘yib “fake login” qilib bo'lmaydi
user login qiladi ➞ backend tokenni httpOnly cookie qilib yuboradi ➞ browser uni yashirin saqlaydi ➞ har requestda browser o‘zi avtomatik yuboradi
⌗Frontend request:
fetch("/api/profile", {
credentials: "include",
})
backend esa:
req.cookies.token
