رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

فناوری

  • نوشته‌
    8
  • دیدگاه
    0
  • مشاهده
    983

مشارکت‌کنندگان این وبلاگ

توکِن JWT چیست و چه کاربردی دارد؟

کامبیز اسدزاده

16 بازدید

ما به شما پیشنهاد می‌کنیم که درباره‌ی انتقال ایمن اطلاعات توسط JSon Web Token بیشتر بدانید. یک وب‌توکت از نوع جی‌سان (JWT) یک استاندارد باز از (RFC7519) می‌باشد که که یک روش جمع‌ و جور و خود مختار را برای ایمنی اطلاعات بین ترنسفر اطلاعات در JSon را تعریف می‌کند. این اطلاعات به عنوان اطلاعات مورد اعتماد قابل تایید می‌باشند زیرا آن‌ها امضای دیجیتالی شده‌اند. تراکنش‌های مربوط به  JWT را می‌توان با استفاده از یک کلید مخفی عمومی/خصوصی امضا کرد.

ساختار وب‌توکن جی‌سان چکونه است؟

  • Header
  • Payload
  • Signature

jwt-diagram.png

هدر یا عنوان (Header)

معمولاً شامل دو قسمت است: نوع توکن، که JWT است، و الگوریتم هَش کننده که استفاده می‌شود. مانند الگوریتم‌های HMAC ،SHA256 و یا RSA.

برای مثال:

{
  "alg": "HS256",
  "typ": "JWT"
}

سپس، این جی‌سان که از نوع Base64-URL کد نگاری شده است قسمت اول JWT را تشکیل می‌دهد.

 

بخش دوم Payload

قسمت دوم توکن ها، payload است که اظهارات را در برمی‌گیرد.

اظهارات ثبت شده (Registered claims): این‌ها مجموعه‌ای از اظهارات از پیش تعریف شده است که اجباری در به کار گیری آن‌ها نیست، اما توصیه می‌شود تا مجموعه‌ی مفیدی را ارائه دهد.

اظهارات عمومی(Public claims): اینها می‌توانند توسط کسانی که از JWT استفاده می‌کنند تعریف کنند. اما برای جلوگیری از برخورد بهتر است تعریف شوند.

اظهارات خصوصی(Private claims): این اظهارات سفارشی ایجاد شده برای به اشتراک گذاشتن اطلاعات بین طرفین است که توافق بر روی استفاده از آن‌ها می‌باشد نه اظهارات ثبت شده یا عمومی.

یک مثال از payload به صورت زیر نشان داده شده است:

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

امضاء

برای ایجاد بخش امضاء شما باید هدر کُد شده را جهت امضا شدن دریافت کنید که شامل payload رمزینه شده، یک کد خاص و الگوریتم مشخص شده‌ای می‌باشد.

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

سپس، شما باید همه‌ی این‌ها را باهم دیگر ترکیب کنید.

نمونه‌ی زیر یک JWT را نشان می‌دهد که حاوی هدر‌ قبلی و payload رمز شده است که در نهایت آن با یک رمز ویژه امضاء شده است.

encoded-jwt3.png

اگر شما می‌خواهید تا با JWT بیبشتر آشنا شوید و این مفاهیم را در عمل اجرا کنید، می‌توانید از jwt.io استفاده کنید.




0 دیدگاه


نظرهای پیشنهاد شده

هیچ دیدگاهی برای نمایش وجود دارد.

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×