JWT Debugger توکنهای JSON Web Token را رمزگشایی و بررسی میکند — هدر، پیلود و امضا را تجزیه کرده، claim ها را نمایش میدهد و وضعیت انقضا را مشخص میکند. این ابزار برای دیباگ مشکلات احراز هویت، بررسی توکنهای OAuth/OIDC و تأیید محتوای JWT بدون نیاز به رمزگشای جداگانه یا مراجعه به jwt.io بسیار مناسب است.
JWT (JSON Web Token) قالب غالب برای توکنهای احراز هویت در APIهای مدرن است — OAuth، OIDC، توکنهای نشست (session) و احراز هویت سفارشی API. اما یک JWT شبیه یک رشته نامفهوم به نظر میرسد: سه رشته کدگذاریشده با Base64URL که با نقطه به هم متصل شدهاند. JWT Debugger این رشته را به سه بخش خود — هدر، payload و امضا — تجزیه میکند، هر بخش را دیکد میکند و محتوای JSON را با هایلایت نحوی نمایش میدهد.
payload برای claimهای شناختهشده تجزیه میشود: iss (صادرکننده)، sub (موضوع)، exp (زمان انقضا)، iat (زمان صدور)، nbf (معتبر نه پیش از)، aud (مخاطب)، jti (شناسه توکن). زمان انقضا از Unix timestamp به قالبی خوانا برای انسان تبدیل شده و بهعنوان معتبر، منقضیشده، یا هنوز نامعتبر علامتگذاری میشود. این ابزار امضا را تأیید نمیکند — چون این کار به کلید مخفی نیاز دارد و خارج از حیطه یک ابزار سمت کلاینت است — اما دقیقاً نشان میدهد یک توکن چه محتوایی دارد تا بتوانید مشکلات احراز هویت را سریع رفعاشکال کنید.
فیلد الگوریتم هدر (alg) بهطور صریح مشخص میشود، از جمله هشداری در صورت استفاده توکن از الگوریتم «none» — یک آسیبپذیری شناختهشده JWT که در آن، اگر سرور توکنهای امضانشده را رد نکند، تأیید امضا میتواند بهکلی دور زده شود. هم الگوریتمهای مبتنی بر HMAC (HS256، HS384، HS512) و هم الگوریتمهای مبتنی بر RSA/ECDSA (RS256، ES256) شناسایی و برچسبگذاری میشوند، بنابراین فوراً میفهمید یک API از یک طرح امضای مبتنی بر کلید مشترک استفاده میکند یا کلید عمومی. claimهای سفارشی و غیراستاندارد نیز بهطور کامل نمایش داده میشوند، چون بیشتر توکنهای واقعی دادههای اختصاصی اپلیکیشن مانند نقشها (roles) یا شناسههای tenant را حمل میکنند.
JWT را روی نقطهها تقسیم و هر بخش را با Base64URL رمزگشایی میکند: هدر، پیلود و امضا. هرکدام جداگانه و با هایلایت نحوی نمایش داده میشود.
الگوریتم (HS256، RS256، ES256) و نوع توکن را نمایش میدهد. بهسرعت بررسی کنید که یک سرویس از چه طرح امضایی استفاده میکند.
پیلود JSON را تجزیه کرده و با کلیدها، رشتهها، اعداد و بولینهای رنگی نمایش میدهد. تمام claim ها با یک نگاه قابل مشاهده هستند.
timestamp های exp (انقضا)، iat (زمان صدور) و nbf (قبل از این معتبر نیست) را بررسی میکند. مشخص میکند توکن معتبر، منقضیشده یا هنوز فعال نشده است — با زمانهای قابلخواندن برای انسان.
claim های ثبتشده (iss، sub، aud، exp، iat، nbf، jti) را شناسایی میکند و توضیحات مرجع سریع درباره معنای هرکدام ارائه میدهد.
توکن خام با هر بخش در رنگی متفاوت نمایش داده میشود تا بتوانید هدر، پیلود و امضا را بهصورت بصری از هم تشخیص دهید.
وقتی یک API خطای 401 Unauthorized برمیگرداند، توکن را پیست کنید تا بررسی کنید منقضی شده، ناقص است یا توسط صادرکننده اشتباهی صادر شده.
access token ها و id token های برگرداندهشده از فرآیندهای OAuth/OIDC را رمزگشایی کنید تا scope های اعطاشده، هویت کاربر و انقضا را ببینید.
پیش از فرض بر پذیرش توسط بکاند، مطمئن شوید claim های لازم (نقشها، مجوزها، شناسه tenant) در توکن موجود هستند.
وقتی توکنی توسط یک سرویس بکاند تولید میشود، آن را رمزگشایی کنید تا مطمئن شوید پیلود با آنچه سرویس قصد صدورش را داشته مطابقت دارد.
در طول یک بازبینی امنیتی، توکنهای ذخیرهشده در localStorage یا کوکیها را رمزگشایی کنید تا ارزیابی کنید چه داده حساسی سمت کلاینت افشا میشود.
روی آیکون JWT در داک DevSuite Pro کلیک کنید. پنلی با یک فیلد ورودی توکن و سه ناحیه رمزگشاییشده باز میشود.
هر JWT را پیست کنید — از پاسخ API، هدر Authorization، کوکی یا localStorage. پیشوند «Bearer » را چه بگذارید چه نگذارید، هردو کار میکنند.
ناحیه Header الگوریتم و نوع را نمایش میدهد. مطمئن شوید که از طرحی استفاده میشود که بکاند شما انتظار دارد (معمولاً HS256 یا RS256).
ناحیه Payload تمام claim ها را با هایلایت نحوی نمایش میدهد. claim های استاندارد (iss، sub، exp) با هدف خود برچسبگذاری میشوند.
نشان وضعیت Valid، Expired یا Not Yet Valid را نمایش میدهد. اگر منقضی شده باشد، احتمالاً همین دلیل خرابی احراز هویت شماست.
DevSuite Pro را به صورت رایگان نصب کنید و بیش از ۶۴ ابزار توسعه را برای مرورگر خود باز کنید.