آیا JWT من به سروری فرستاده میشود؟+−
خیر. رمزگشایی کاملاً در مرورگر شما و با استفاده از APIهای وب atob و TextDecoder انجام میشود - توکن، و هر رمز مشترک یا کلید عمومی که برای تأیید امضا جایگذاری میکنید، هرگز از دستگاه شما خارج نمیشود.
آیا این ابزار میتواند امضا را تأیید کند؟+−
بله، بهعنوان یک قابلیت اضافه با تلاش بهترین حالت. اگر رمز مشترک HMAC را بدانید (برای HS256/384/512) یا کلید عمومی رمزگذاریشده با PEM را جایگذاری کنید (برای RS256/384/512 یا ES256/384/512)، ابزار امضا را بهصورت محلی با Web Crypto API مرورگر بررسی میکند. بدون کلید، فقط هدر و payload رمزگشایی و نمایش داده میشوند - رمزگشایی هرگز به کلید امضا نیاز ندارد.
چرا الگوریتم "none" نشان داده میشود؟+−
"alg": "none" یعنی توکن اصلاً امضا نشده است - هر کسی میتوانست هر ادعایی را در آن بنویسد. برخی کتابخانهها در گذشته چنین توکنهای امضانشدهای را بهاشتباه معتبر میپذیرفتند که به روشی شناختهشده برای دور زدن احراز هویت تبدیل شد. این ابزار همیشه این مورد را بهطور برجسته نشان میدهد تا آن را از دست ندهید.
exp، iat و nbf به چه معنا هستند؟+−
اینها ادعاهای زمانی استاندارد از RFC 7519 هستند: iat نشان میدهد توکن چه زمانی صادر شده، nbf زودترین لحظهای است که معتبر میشود و exp لحظهای است که دیگر معتبر نیست. هر سه بهصورت NumericDate - ثانیه از epoch یونیکس - ذخیره میشوند که این ابزار آن را به تاریخی خوانا و زمانی نسبی مانند «۲ ساعت دیگر منقضی میشود» تبدیل میکند.
چرا میتوانم payload را بدون رمز مشترک بخوانم؟+−
زیرا هدر و payload یک JWT فقط با base64url رمزگذاری شدهاند، نه رمزنگاری - رمزگذاری به معنای محرمانه بودن نیست. هر کسی که توکن را داشته باشد از قبل میتواند ادعاها را بخواند؛ امضا فقط ثابت میکند که آنها توسط شخصی بدون کلید دستکاری نشدهاند. هرگز چیزی را که نمیخواهید مهاجم مستقیماً بخواند، داخل payload یک JWT قرار ندهید.
توکن من ۳ بخش دارد اما هنوز رمزگشایی نمیشود - چرا؟+−
هر یک از سه بخش (هدر، payload، امضا) باید متن base64url معتبری باشد و هدر و payload باید به JSON معتبر رمزگشایی شوند. این ابزار هدر و payload را بهطور مستقل رمزگشایی میکند و دقیقاً میگوید کدامیک خراب است و چرا (base64 نادرست، UTF-8 نادرست یا JSON نامعتبر)، بهجای شکست خوردن بیسروصدا.