Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

فرم‌ساز — راهنمای راه‌اندازی (نسخه با مدیریت کاربران)

امکانات جدید

  • ورود با شماره تماس و رمز عبور (JWT)
  • نقش مدیر و کاربر عادی
  • مدیر می‌تواند گروه و کاربر بسازد (نام کاربری = شماره تماس)
  • تعیین دسترسی فرم به‌ازای هر کاربر یا هر گروه
  • رمزنگاری AES-256-GCM برای داده‌های پاسخ فرم‌ها (form_submissions) و رمزهای عبور با bcrypt
  • هدرهای امنیتی با helmet و محدودیت تلاش ورود (rate limit)
  • ظاهر جدید با نوار بالای شیشه‌ای، گرادیان و منوی کاربر

راه‌اندازی بک‌اند

cd backend
npm install
cp .env.example .env
# مقدار JWT_SECRET و ENCRYPTION_KEY را در .env عوض کنید:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
npm start

در اولین اجرا یک کاربر مدیر پیش‌فرض ساخته می‌شود (شماره و رمز در کنسول چاپ می‌شود یا از DEFAULT_ADMIN_PHONE/DEFAULT_ADMIN_PASSWORD در .env خوانده می‌شود). بلافاصله بعد از اولین ورود رمز را عوض کنید.

راه‌اندازی فرانت‌اند

cd frontend
npm install
npm run dev

نحوه کار دسترسی‌ها

  • مدیر همه‌ی فرم‌ها را می‌بیند و می‌سازد.
  • کاربر عادی فقط فرم‌هایی را می‌بیند که:
    • مستقیماً به او اختصاص داده شده (form_user_permissions)، یا
    • گروه او به آن فرم دسترسی دارد (form_group_permissions)
  • لینک عمومی هر فرم (/f/:id) بدون نیاز به ورود قابل پر شدن است؛ این برای کسانی است که قرار است فرم را پر کنند، نه مدیریتش کنند.

نکات امنیتی

  • حتماً JWT_SECRET و ENCRYPTION_KEY را با مقادیر تصادفی و طولانی جایگزین کنید (مقادیر نمونه فقط برای تست هستند).
  • در سرور واقعی پروژه را پشت HTTPS قرار دهید.
  • اگر ENCRYPTION_KEY را بعداً عوض کنید، پاسخ‌های قبلاً ذخیره‌شده دیگر رمزگشایی نمی‌شوند؛ کلید را جایی امن نگه دارید.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages