استفاده از ماژول ngx_http_auth_jwt_module در Nginx

nginx ngx_http_auth_jwt_module auth_jwt_type
13 خرداد 1404


ماژول ngx_http_auth_jwt_module یکی از ابزارهای مفید در Nginx است که به ما این امکان را می‌دهد تا احراز هویت بر اساس توکن‌های JWT (JSON Web Tokens) را پیاده‌سازی کنیم. این ماژول می‌تواند به راحتی در پروژه‌های مختلف برای تأمین امنیت API‌ها و وب‌سایت‌ها استفاده شود. در این مقاله، می‌خواهیم به نوع auth_jwt_type که به تنظیمات این ماژول مربوط می‌شود بپردازیم.


تنظیم auth_jwt_type به ما این امکان را می‌دهد که نوع توکن JWT را مشخص کنیم. انواع مختلف JWT وجود دارد که می‌توانیم برای احراز هویت استفاده کنیم، از جمله none، bearer و cookie که هر کدام مسیر متفاوتی را برای اعتبارسنجی توکن دنبال می‌کنند. به طور کلی، این امکان به ما کمک می‌کند تا نحوه ارسال توکن را مطابق با نوع پروژه خود تنظیم کنیم.


معمولاً در یک API، ما از توکن‌های bearer استفاده می‌کنیم که به این صورت در هدر درخواست HTTP ارسال می‌شوند: Authorization: Bearer [TOKEN]. اما اگر بخواهیم از کوکی‌های HTTP به عنوان وسیله‌ای برای ارسال توکن استفاده کنیم، می‌توانیم auth_jwt_type را به cookie تنظیم کنیم.


در ادامه، یک نمونه ساده از نحوه تنظیم ماژول برای احراز هویت با استفاده از JWT را بررسی خواهیم کرد. این تنظیمات می‌توانند به راحتی در فایل پیکربندی Nginx قرار گیرند و به شما این امکان را می‌دهند که به سادگی انواع مختلف احراز هویت را بررسی و انتخاب کنید.


نمونه کد


location /api {
auth_jwt "Protected Area";
auth_jwt_key "your_jwt_secret_key_here";
auth_jwt_type bearer;
proxy_pass http://your_backend;
}

توضیح کد



  • location /api: این بخش مشخص می‌کند که این تنظیمات برای URLهای با پیشوند /api اعمال می‌شود.

  • auth_jwt "Protected Area": پیامی که به کاربر نمایش داده می‌شود اگر دسترسی نداشت، در اینجا "Protected Area" نامیده شده است.

  • auth_jwt_key "your_jwt_secret_key_here": کلید مخفی که توکن‌های JWT با آن امضا شده‌اند.

  • auth_jwt_type bearer: نوع توکن JWT که در اینجا bearer انتخاب شده است.

  • proxy_pass http://your_backend: در صورتی که احراز هویت موفقیت‌آمیز باشد، درخواست به سرور backend پروکسی می‌شود.


به طور خلاصه، ماژول ngx_http_auth_jwt_module به شما این امکان را می‌دهد تا به راحتی احراز هویت مبتنی بر توکن JWT را در Nginx پیاده‌سازی کنید و auth_jwt_type گزینه‌ها و انعطاف‌های مختلفی به شما می‌دهد تا روش احراز هویت خود را به سادگی تنظیم کنید.


سوالات متداول

؟

ماژول ngx_http_auth_jwt_module چیست؟

؟

چگونه می‌توان نوع توکن را تنظیم کرد؟

؟

آیا می‌توانم از کوکی‌ها برای احراز هویت استفاده کنم؟

؟

چگونه یک کلید مخفی برای JWT تنظیم کنم؟