سهرهتا
لهم بابهته باسی JWT دهكهین كه چیهو بۆچی بهكاردێت، تاوهكو ماوهیهك لهمهوبهر بهربڵاوترین شێوازی نوسینی پرۆگرام بریتی بوو له monolithic بهواتای ئهوهی پرۆگرامهكهت یهك پارچهیه روكارهكهی لهگهڵ پهیوهست بوون به بنكهدراوه ههمووی له یهك پاكێجدا كۆدهكرایهوه تاوهكو ئێستاش زۆر بهربڵاوهو بۆ پرۆگرامی بچوك زۆر بێ كێشهیه بهڵام كاتێك شتێكی گهوره دروست دهكهیت گهشهپێدان و گۆرانكاری دهبێته كردارێكی ئهستهم بۆیه له ئێستادا شێوازێكی دیكه بهكاردههێندرێت كه ههڵدهستن به جیاكردنهوهی رووكار و ناوكی پرۆگرامهكهت بگره زۆربهی كردارهكان دهكهن به پرۆژهی بچوك بچوك بۆ ئهوهی بتوانرێت چهند تیمێك و چهند تهكنهلۆجیایهكی جیا بهكاربهێندرێت بهم شێوازه گهشهپێدانه دهوترێت microservices لهوانهیه پرسیار بكهیت چۆن دهتوانیت له نێوان ئهم پرۆگرامه بچوكانه كه به تهكنهلۆجیای جیا دروست كراون زانیاریهكان ئاڵوگۆر دهكهن دهبێت ستاندارێك ههبێت، بهڵێ ستاندارهكه ههیه RFC 7519 یان ناوه بهربڵاوهكهی JSON Web Tokens – JWT
بابهتی بهسود
دهتوانیت ئهم بابهتانه بخوێنیتهوه بۆ ئهوهی به تهواوی سوود لهم بابهته وهرگریت
JWT چیه ؟
ستاندارێكی كراوهیه بۆ ئاڵوگۆری زانیاریهكان له نیێوان دوو سهرچاوه یان زیاتر بهشێوازێكی پارێزراو
له چ كاتێكدا دهبێت JWT بهكاربهێنیت
- Authorization : رێگهپێدان كاتێك بهكارهێنهر داخڵی سیستهم دهبێت لهمهو دوا ستیستهمهكه لهگهڵ ههر داواكاریهك ئهو تۆكنه دهنێرێرێت لهجیاتی دروستكردنی session ێك لهسهر راژهكه بهوه راستهوخۆ ئهو پهیوهندیه دهشكێنیت كه پێویسته رووكار لهگهڵ راژه دروستی بكات، بهڵكو بهم تۆكنه یان بهم سترینگ ه دهتوانرێت بزانین كێ چی ناردووه ئهم زانیاریانه لهناو تۆكنهكه ههڵدهگیرێیت، لێرهدا رووكارهكه ئهم تۆكنه ههڵدهگرێت و هیچ پهیوهندیهكی به راژهكهوه نامێنێت.
- Information Exchange: بهكارهێنانێكی دیكه بریتیه له گۆرینهوهی زانیاری به شێوازێكی پارێزراو به مانای ئهوهی كاتێك لایهنی یهكهم نامهیهك دهنێرێت بۆ لایهنی دووهم لایهنی دووهم راستهوخۆ دهتوانێت بزانێت كه ئهم زانیاریانه دهسكاریكراون له لایهن هیچ كهسێكی دیكه یان نا
JWT چۆنه و لهچی پێكهاتووه
JWT له سێ بهشی سهرهكی پێكهاتووه
- header هێدهر
- payload پهیلۆد بهواتای ناوهرۆك دێت لێرهدا
- Signature واژوو
ههر سێبهش به . لهیهك جیاكراونهتهوه بۆیه ههموو تۆكنێكی JWT لهو شێوازهیه xxxxx.yyyyy.zzzzz
header هێدهر
به شێوهیهكی سهرهكی له دوو بهش پێكدێت جۆر و ئهلگۆریثم كه ههموو كاتێك جۆرهكه JWT دهبێت و ئهلگۆریثم دهكرێت یهكێك لهمانه بێت HMAC SHA256 یان RSA نموونهیهك له هێدهر
كاتێك هێدهر دروست دهكرێت ئینكۆدی دهكهین به بهكارهێنانی Base64Url و دهبێته یهكهمین بهشی تۆكنهكهمان
payload ناوهرۆك
ناوهرۆكیش ههر ئۆبجێكتێكی جهیسۆنه كه پرۆپهرتیهكانی ناوی دهبن به دوو بهشهوه
- ئهو پرۆپهرتیانهی كه تایبهتن به JWT كه وا باشه ههبن ئهوانیش بریتین لهو چهند پرۆپهرتیه
- ئهو پرۆپهرتیانهی كه تۆ دهتهوێت واته زانیاری تایبهت بهخۆت كه دهتهوێت لهناو تۆكنهكهدا ههبێت زۆربهی كات لهوانهیه ID بهكارهێنهرهكه و ههندێك زانیاری بچوكی دیكه واباشه زانیاری زۆر لهناو تۆكن ههڵنهگریت بهڵكو كهمترین زانیاری كه واتای بۆت ههبێت
نموونهیهكی پهیلۆد
كاتێك پهیلۆد دروست دهكرێت ئینكۆدی دهكهین به بهكارهێنانی Base64Url و دهبێته دووهمین بهشی تۆكنهكهمان
Signature یان واژوو
بهشی سێیهم و كۆتایی تۆكن بریتیه له هاشێكی دوو بهشهكهی پێشوو كه له بهشی هێدهر دیاری كراوه چ جۆره هاشێكه، هاشكرندهكه به شێوازێكی لهو جۆره دهبێت
دروستكرنی تۆكنهكه
كاتێك ههر سێ بهشهكهت بهدهسهێنا دهتوانیت لهدوای یهكیان دابنێیت و به . لێكیان جیا بكهیتهوه نموونهی تۆكنێكی JWT لهو شێوازه دهبێت
پێویسته ههموو ئهمانه بكهم ؟
نهخێر بهڵكو له ماڵپهری سهرهكی JWT لایبرهری بۆ ههموو زمانهكان ههیه بۆیه ئهم بهشهی سهرهوه بۆ تێگهشتنه ئهمهش بزانه ئهم لایبرهریانه دهتوانن پێت بڵێن كه ئایه تۆكنێك تهواوه یان ههڵهیه یان بهسهرچووه یان ههر كێشهیهكی دیكه ?
چۆن JWT بهكاربهێنین ؟
دوای دروستكردنی تۆكنهكه سیناریۆیهكی ساده باسدهكهین كه چۆن دهتوانرێت سوودی لێ وهربگیرێت
ههنگاوی یهكهم ماڵپهرهكهت یان رووكاری سیستهمهكهت داواكاریهك دهنێرێت له كاتی چوونهژوورهوه، بۆ دروستكردنی تۆكن
ههنگاوی دووهم راژه بهدوای بهكارهێنهردا دهگهرێت
ههنگاوی سێیهم ئهگهر هاتوو بهكارهێنهر دۆزرایهوه بهردهوام دهبین ئهگهرنا ههڵهی چوونهژوورهوه نیشان دهدهین
ههنگاوی چوارهم تۆكنێك دروست دهبێت و دهینێرینهوه بۆ رووكار لێرهدا ماڵپهرهكهمان و ئهم تۆكنه ههڵدهگیرێت له شوێنێك لێرهدا كراوه به كووكی و ناوی لێندراوه سپایدهرمان
ههنگاوی پێنجهم ههركاتێك داوای ههر زانیاریهك دهكهین كووكی سپایدهرمان دهنێرین
ههنگاوی شهشهم لهسهر راژه تۆكنهكه ههڵدهشێتهوه و پهیلۆدهكهی سهیر دهكهین و بهپێیی ID بهكارهێنهر كردارهكانمان دهكهین و زانیاریهكه دهنێرینهوه لێرهدا سهرنج بده ههر كاتێك تۆكن ههڵه بوو ئهوا راستهوخۆ دهتوانیت بینێریتهوه پهرهی چوونهژوورهوه چوونكه وا دادهنێیین كه زانیاری ههڵهمان پێگهشتووه له بهكارهێنهری ههڵه
كۆتایی
له كۆتایی چهند زانیاریهكی دیكه ههیه دبێت باسی بكهین، دهبێت تۆكنهكانت پهیلۆدیان كهم بێت كهمترین زانیاری كه بتوانیت سوودیان لێوهرگریت قهبارهی تۆكن دهبێت له 8KB بچووكتربێت، تۆكنهكانت له هێدهری ریكوێستهكانت دهبن و به تایبهتی Authorization header ئهوهش لهبهر ئهوهیه قهبارهی هێدهركان دیاریكراون له پرۆتۆكۆڵی http، له زۆر شوێندا لهوانهیه ببینیت بهو تۆكنه بگوترێت Access Token، ئهمه باسێكی Json Web Tokens بوو بههیوای سوودوهرگرتن.
بۆچوونەکان