ماژول 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
گزینهها و انعطافهای مختلفی به شما میدهد تا روش احراز هویت خود را به سادگی تنظیم کنید.