background

باسێكی JSON Web Tokens – JWT

هاوپۆل: بەرنامەدارشتن  ژ.بابەت : 2738  بەروار : نیسان 13, 2020
base64, json web tokens, jwt, JWT token, token, تۆكن
QR Code For:  باسێكی JSON  Web Tokens – JWT

سه‌ره‌تا

له‌م بابه‌ته‌ باسی JWT ده‌كه‌ین كه‌ چیه‌و بۆچی به‌كاردێت، تاوه‌كو ماوه‌یه‌ك له‌مه‌وبه‌ر به‌ربڵاوترین شێوازی نوسینی پرۆگرام بریتی بوو له‌ monolithic به‌واتای ئه‌وه‌ی پرۆگرامه‌كه‌ت یه‌ك پارچه‌یه‌ روكاره‌كه‌ی له‌گه‌ڵ په‌یوه‌ست بوون به‌ بنكه‌دراوه‌ هه‌مووی له‌ یه‌ك پاكێجدا كۆده‌كرایه‌وه‌ تاوه‌كو ئێستاش زۆر به‌ربڵاوه‌و بۆ پرۆگرامی بچوك زۆر بێ كێشه‌یه‌ به‌ڵام كاتێك شتێكی گه‌وره‌ دروست ده‌كه‌یت گه‌شه‌پێدان و گۆرانكاری ده‌بێته‌ كردارێكی ئه‌سته‌م بۆیه‌ له‌ ئێستادا شێوازێكی دیكه‌ به‌كارده‌هێندرێت كه‌ هه‌ڵده‌ستن به‌ جیاكردنه‌وه‌ی رووكار و ناوكی پرۆگرامه‌كه‌ت بگره‌ زۆربه‌ی كرداره‌كان ده‌كه‌ن به‌ پرۆژه‌ی بچوك بچوك بۆ ئه‌وه‌ی بتوانرێت چه‌ند تیمێك و چه‌ند ته‌كنه‌لۆجیایه‌كی جیا به‌كاربهێندرێت به‌م شێوازه‌ گه‌شه‌پێدانه‌ ده‌وترێت microservices له‌وانه‌یه‌ پرسیار بكه‌یت چۆن ده‌توانیت له‌ نێوان ئه‌م پرۆگرامه‌ بچوكانه‌ كه‌ به‌ ته‌كنه‌لۆجیای جیا دروست كراون زانیاریه‌كان ئاڵوگۆر ده‌كه‌ن ده‌بێت ستاندارێك هه‌بێت، به‌ڵێ ستانداره‌كه‌ هه‌یه‌ RFC 7519 یان ناوه‌ به‌ربڵاوه‌كه‌ی JSON Web Tokens – JWT

بابه‌تی به‌سود

ده‌توانیت ئه‌م بابه‌تانه‌ بخوێنیته‌وه‌ بۆ ئه‌وه‌ی به‌ ته‌واوی سوود له‌م بابه‌ته‌ وه‌رگریت

  1. باسێکی کورتی REST API
  2. باسێکی وردی Authentication و Authorization
  3. ئۆبجێکتی جەیسۆن(JSON) چیە ؟

JWT چیه‌ ؟

ستاندارێكی كراوه‌یه‌ بۆ ئاڵوگۆری زانیاریه‌كان له‌ نیێوان دوو سه‌رچاوه‌ یان زیاتر به‌شێوازێكی پارێزراو

له‌ چ كاتێكدا ده‌بێت JWT به‌كاربهێنیت

  • Authorization : رێگه‌پێدان كاتێك به‌كارهێنه‌ر داخڵی سیسته‌م ده‌بێت له‌مه‌و دوا ستیسته‌مه‌كه‌ له‌گه‌ڵ هه‌ر داواكاریه‌ك ئه‌و تۆكنه‌ ده‌نێرێرێت له‌جیاتی دروستكردنی session ێك له‌سه‌ر راژه‌كه‌ به‌وه‌ راسته‌وخۆ ئه‌و په‌یوه‌ندیه‌ ده‌شكێنیت كه‌ پێویسته‌ رووكار له‌گه‌ڵ راژه‌ دروستی بكات، به‌ڵكو به‌م تۆكنه‌ یان به‌م سترینگ ه‌ ده‌توانرێت بزانین كێ چی ناردووه‌ ئه‌م زانیاریانه‌ له‌ناو تۆكنه‌كه‌ هه‌ڵده‌گیرێیت، لێره‌دا رووكاره‌كه‌ ئه‌م تۆكنه‌ هه‌ڵده‌گرێت و هیچ په‌یوه‌ندیه‌كی به‌ راژه‌كه‌وه‌ نامێنێت.
  • Information Exchange: به‌كارهێنانێكی دیكه‌ بریتیه‌ له‌ گۆرینه‌وه‌ی زانیاری به‌ شێوازێكی پارێزراو به‌ مانای ئه‌وه‌ی كاتێك لایه‌نی یه‌كه‌م نامه‌یه‌ك ده‌نێرێت بۆ لایه‌نی دووه‌م لایه‌نی دووه‌م راسته‌وخۆ ده‌توانێت بزانێت كه‌ ئه‌م زانیاریانه‌ ده‌سكاریكراون له‌ لایه‌ن هیچ كه‌سێكی دیكه‌ یان نا

JWT چۆنه‌ و له‌چی پێكهاتووه‌

JWT  له‌ سێ به‌شی سه‌ره‌كی پێكهاتووه‌

  1. header هێده‌ر
  2. payload په‌یلۆد به‌واتای ناوه‌رۆك دێت لێره‌دا
  3. 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 بوو به‌هیوای سوودوه‌رگرتن.

 

ئارام

ژمارەی بابەتەکان: 77

ئەندازیاری پرۆگرامسازی لە هەندێک کۆمپانیای ناوخۆ و دەرەکی کاری پرۆگرامسازیم کردووە لەوانە ( Dwrandaz, Jiasaz, Lezzoo ,Avesta Group , Lucid ,GIGANT, eDRV) هەروەها هاودەمەزرێنەری کۆمپانیای Hesta ی پرۆگرامسازیم حەز بە دروستکردنی سیستەم و وێب ئەپلیکەیشن دەکەم.

  • بۆچوونەکان

    نووسینی وەڵام

    پۆستی ئەلیکترۆنییەکەت بڵاوناکرێتەوە. خانە پێویستەکان دەستنیشانکراون بە *