در یک برنامه Node.js با استفاده از Express.js یک middleware بنویسید که برای هر درخواست بررسی کند آیا هدر "X-Auth-Token" وجود دارد و اگر نباشد با وضعیت 401 و پیام خطا پاسخ دهد و در غیر این صورت با فراخوانی next() پردازش را ادامه دهد.
23.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:23 0.0
برای حل این مسئله یک اپلیکیشن ساده Express بسازید و یک تابع middleware با امضای (req, res, next) تعریف کنید که با استفاده از req.get('X-Auth-Token') یا req.headers مقدار هدر را بررسی کند؛ اگر مقدار وجود نداشت از res.status(401).json({ error: 'Unauthorized' }) استفاده کنید و اگر بود next() را فراخوانی کنید. فناوریهای مورد استفاده Node.js و Express هستند — میتوانید middleware را با app.use یا فقط برای مسیرهای خاص ثبت کنید؛ برای تست از curl یا Postman بهره ببرید و مراقب باشید در middlewareهای غیرهمزمان (async) خطاها را با next(err) منتقل کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
میتوانید از req.get('X-Auth-Token') یا req.headers['x-auth-token'] استفاده کنید چون نام هدرها case-insensitive هستند و دقت کنید مقدار خالی را هم مثل نبودن هدر در نظر بگیرید. این middleware را قبل از تعریف روتها با app.use ثبت کنید و در صورت نیاز به بررسی غیرهمزمان توکن از try/catch و next(err) برای انتقال خطا استفاده کنید. برای تمایز بین عدم ارائه توکن (401) و توکن نامعتبر (403) پاسخهای مناسب بفرستید و با curl یا Postman آن را تست کنید.
گزارش