JSON Web Token (جیسون وب توکن)

JSON Web Token (جیسون وب توکن) یک استاندارد باز (RFC 7519) است که یک روش فشرده و مستقل را برای انتقال امن اطلاعات بین دو طرف به عنوان یک شی JSON تعریف می کند. این اطلاعات به دلیل امضای دیجیتالی قابل تایید و اعتماد است.

JWT یک استاندارد است، به این معنی که همه JWT ها توکن هستند، اما همه توکن ها JWT نیستند. به دلیل اندازه‌ی کوچک آن، یک JWT می‌تواند از طریق یک URL، از طریق یک پارامتر POST یا داخل یک هدر HTTP ارسال شود و به سرعت منتقل شود. یک JWT شامل تمام اطلاعات مورد نیاز در مورد یک موجودیت برای جلوگیری از پرس و جو از یک پایگاه داده بیش از یک بار است. همچنین گیرنده‌ی JWT نیازی به تماس با سرور برای تایید اعتبار توکن ندارد.

JWT ها را می توان با استفاده از یک رمز (با الگوریتم HMAC) یا یک جفت کلید عمومی/خصوصی با استفاده از RSA یا ECDSA امضا کرد. 

اگرچه JWT ها می‌توانند رمزگذاری شوند تا رازداری بین دو طرف ارتباط نیز فراهم شود، اما بیشتر بر روی توکن های امضا شده تمرکز می‌شود. توکن های امضا شده می توانند یکپارچگی ادعاهای موجود در آن را تایید کنند، در حالی که توکن های رمزگذاری شده آن ادعاها را از طرف های دیگر پنهان می‌کنند. هنگامی که توکن ها با استفاده از جفت کلید عمومی/خصوصی امضا می شوند، امضا همچنین تایید می‌کند که تنها طرفی که کلید خصوصی را در اختیار دارد، آن را امضا کرده است. 

برای مطالعه‌ی بیشتر می‌توانید به بخش جیسون وب توکن (JSON Web Token) چیست؟ از دوره‌ی "آموزش RESTful API" مراجعه کنید.