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

فناوری

  • نوشته‌
    10
  • دیدگاه
    1
  • مشاهده
    1,767

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

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

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

703 بازدید


ما به شما پیشنهاد می‌کنیم که درباره‌ی انتقال ایمن اطلاعات توسط 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 دیدگاه


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

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

مهمان
افزودن دیدگاه

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

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

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

×
×
  • جدید...