ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-25, Saturday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

බ්‍රවුසර ටැබ අතර JWT රිෆ්‍රෙෂ් ගැලපීමේ අභියෝගය සහ Web Locks API විසඳුම

බ්‍රවුසර ටැබ අතර JWT රිෆ්‍රෙෂ් ගැලපීමේ අභියෝගය සහ Web Locks API විසඳුම

ඔබ අලුතින් Axios response interceptor එකක් හදලා, 401 දෝෂයන්ට මුහුණ දුන් විට token refresh කිරීමේ mutex lock (isRefreshing) සහ promise queue (failedQueue) භාවිතා කරලා තියෙනවා කියලා හිතන්න. ඒක එක තැබ් තුළ පරීක්ෂා කරලා හොඳට වැඩ කරනවා. නමුත්, පරිශීලකයෙක් එකම වෙබ් අඩවියට බහු තැබ් විවෘත කරගෙන ඉන්න විට, මේ ක්‍රමය අහම්බෙන් auth server එකට DDOS වගේ ඉල්ලීම් එවන තත්ත්වයක් සලස්වයි.

කාලයක් ගත වූ පසු, JWT access token එක කාලය ඉක්මවා ගිය විට, සියලු තැබ් එකවර POST /auth/refresh-token/ ඉල්ලීම් එවයි. පළමු තැබ් token එක නවීකරණය කරත්, දෙවැනි තැබ් එම ඉල්ලීම තත්පරයකින් පසු එවා පළමු token එක අහෝසි කරයි. තෙවැනි තැබ් තවත් අහෝසි කිරීමක් සිදු කරමින්, අවසන් වශයෙන් සියලු තැබ් එකවර login පිටුවට යොමු වේ. මෙය “Cross‑Tab Token Trap” ලෙස හැඳින්වේ.

SPA (Single Page Application) වල, තැබ් එකකටම අයත් JavaScript runtime එකක් පවතී. ඒ නිසා isRefreshing වර්ගයේ in‑memory flag එක තැබ් A එකේ true කරලා තිබුනත්, තැබ් B, C වැනි අනෙකුත් තැබ් වලට ඒ තත්ත්වය නොදැනේ. එම නිසා එකම refresh token එක භාවිතා කරමින්, backend එක Single‑Use Refresh Token Rotation ක්‍රමය පාලනය කරන්නේ නම්, බහු තැබ් භාවිතය session එකම නස්බවට හේතුවක් වේ.

ඉදිරිපත් වූ “Works in My Tab” සින්ඩ්‍රෝමය QA පරීක්ෂණයේ හෙළිවී. තැබ් 3කින් එකම POST /auth/refresh-token/ ඉල්ලීම් එකම මොහොතේ එවන බව Chrome DevTools මගින් හඳුනා ගන්න ලැබුණි. මෙය JavaScript memory isolation එකේ ප්‍රතිඵලය බව තේරුම් ගත්තා.

මෙම ගැටලුවට විසඳුමක් ලෙස Web Locks API (navigator.locks) භාවිතා කළ හැක. Web Locks API සියලු තැබ් අතර exclusive lock එකක් ලබා දී, එක තැබ්ට token refresh කිරීමේ අවසර ලබා දී, අනෙකුත් තැබ් ගැලපීමේදී lock මුදා හැරෙන තුරු රැඳී සිටීමට ඉඩ දෙයි. එවිට අනෙකුත් තැබ් localStorage හෝ sessionStorage තුළ නව token එක ලබා ගනිමින්, නැවත server call නොකරයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • දෙවන පරම්පරා සංවර්ධකයින් – Web Locks API භාවිතය මඟින් බහු තැබ් වල concurrency පාලනය කර, වැඩි පාලනය සහිත SPA නිර්මාණය කළ හැක.
  • ව්‍යාපාරික ආයතන – Token refresh stampede නිසා backend overload වීම වැළැක්වීමෙන්, server resources අඩු කර, පාරිභෝගික අත්දැකීම ස්ථායි කරයි.
  • සිසුන් – Modern web APIs ගැන ඉගෙන ගැනීම, ජාත්‍යන්තර තාක්ෂණ ප්‍රවණතා සමඟ ගැලපෙන පුහුණුව ලබා දේ.

අවසන් වශයෙන්, බහු තැබ් වල JWT refresh කිරීමේ ගැටළුවක් තේරුම් ගත හැකිවීම, Web Locks API යොදා ගෙන එය විසඳීම, ශ්‍රී ලංකාවේ වෙබ් යෙදුම් නිර්මාණයේ ගුණාත්මකභාවය ඉහළ නැංවීමට මඟ පෙන්වයි. ඔබේ අයදුම්පතේ token management ක්‍රමය නැවත සලකා බලන්න.

💡 ඔබේ වෙබ් යෙදුමට අධිකාරි රිෆ්‍රෙෂ් ක්‍රමයක් එක් කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#JWT #WebLocks #SPA #Authentication #JavaScript