یک سرور ساده با Node.js و Express بنویسید که ثبتنام و ورود کاربران را با رمزنگاری رمز عبور و صدور JWT انجام دهد و یک مسیر محافظتشده را بر اساس نقش (role) فقط برای کاربران با نقش "admin" در دسترس قرار دهد.
6.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:20 0.0
برای حل این مسئله از JavaScript در سمت سرور با کتابخانههای Express، bcrypt برای هش کردن رمز عبور و jsonwebtoken برای صدور و بررسی توکن استفاده کنید. کاربران را میتوانید در یک آرایهٔ حافظهای ساده نگهداری کنید؛ یک مسیر /register برای دریافت نام کاربری، رمز عبور و نقش و ذخیرهٔ کاربر با رمز هششده، و یک مسیر /login برای اعتبارسنجی و بازگرداندن JWT حاوی اطلاعات نقش پیادهسازی کنید. یک میدلور برای بررسی هدر Authorization ("Bearer ") بنویسید که توکن را اعتبارسنجی و کاربر را به درخواست متصل کند و سپس میدلوری برای بررسی نقش (مثلاً نقش باید "admin" باشد) قبل از اجازه دسترسی به مسیر محافظتشده (/admin) قرار دهید؛ از مقادیر مناسب وضعیت HTTP (401/403) و یک مقدار مخفی برای JWT (مثلاً از process.env.JWT_SECRET) استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای امنیت بهتر، یک JWT_SECRET مخفی در محیط اجرا تعریف کنید و آن را به جای قرار دادن در کد از process.env.JWT_SECRET بخوانید. همچنین توکنها باید تاریخ انقضا داشته باشند و امکان تمدید (refresh) در نظر گرفته شود. پیامهای خطا را به صورت عمومی نمایش دهید تا جزئیات پیادهسازی فاش نشود و لاگها برای اشکالزدایی نگه داشته شوند. اگر فقط از یک آرایه حافظه برای کاربرها استفاده میکنید، به یاد داشته باشید که در صورت ریست یا مقیاسپذیری دادهها از دست میرود و در محیط تولید باید از پایگاه داده استفاده کنید.
گزارش