یک سرور ساده با 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) استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:20
دسته بندی ها: JavaScript JavaScript for beginner
arash در 201 روز قبل ساعت 06:45

برای امنیت بهتر، یک JWT_SECRET مخفی در محیط اجرا تعریف کنید و آن را به جای قرار دادن در کد از process.env.JWT_SECRET بخوانید. همچنین توکن‌ها باید تاریخ انقضا داشته باشند و امکان تمدید (refresh) در نظر گرفته شود. پیام‌های خطا را به صورت عمومی نمایش دهید تا جزئیات پیاده‌سازی فاش نشود و لاگ‌ها برای اشکال‌زدایی نگه داشته شوند. اگر فقط از یک آرایه حافظه برای کاربرها استفاده می‌کنید، به یاد داشته باشید که در صورت ریست یا مقیاس‌پذیری داده‌ها از دست می‌رود و در محیط تولید باید از پایگاه داده استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری