Skip to content

lilUnkelDemon/snythor-app

Repository files navigation

پروژه احراز هویت JWT با نقش‌ها در Spring Boot

🎯 اهداف پروژه

این پروژه نمونه‌ای از یک سیستم احراز هویت (Authentication) و مجوزدهی (Authorization) است که با استفاده از Spring Boot و JWT (JSON Web Token) پیاده‌سازی شده است. هدف، فراهم کردن یک ساختار پایه، تمیز و قابل گسترش برای مدیریت کاربران و نقش‌ها در یک برنامه‌ی امن و مقیاس‌پذیر است.

📌 اهداف اصلی:

  • ✅ پیاده‌سازی احراز هویت بر پایه توکن JWT به منظور حذف نیاز به session و افزایش امنیت.
  • ✅ تعریف و مدیریت نقش‌های مختلف کاربری شامل:
    • ROLE_SUDO (سطح بالاترین دسترسی)
    • ROLE_ADMIN (مدیر سیستم)
    • ROLE_USER (کاربر عادی)
  • ✅ فراهم کردن امکانات ثبت‌نام کاربر جدید با نقش پیش‌فرض ROLE_USER.
  • ✅ پیاده‌سازی ورود (Login) و تولید توکن JWT برای استفاده در درخواست‌های بعدی.
  • ✅ ساخت فیلتر امنیتی (JWT Filter) برای اعتبارسنجی توکن‌ها در هر درخواست HTTP.
  • ✅ پیکربندی امنیت برنامه با استفاده از Spring Security جهت محدود کردن دسترسی‌ها بر اساس نقش.
  • ✅ قابلیت اتصال به دیتابیس‌های مختلف مانند MySQL و استفاده از پایگاه داده درون‌حافظه‌ای H2 برای توسعه و تست سریع.
  • ✅ ساختاردهی کد به صورت ماژولار و تمیز، با تفکیک مسئولیت‌ها در پوشه‌های مختلف.

✨ مزایای پروژه:

  • آماده به توسعه برای پروژه‌های بزرگ‌تر و پیچیده‌تر
  • کدنویسی مدرن و مطابق با استانداردهای Spring Boot و Spring Security
  • استفاده از Gradle برای مدیریت وابستگی‌ها و ساخت پروژه
  • استفاده از Lombok برای کاهش کدهای تکراری در entity ها و کلاس‌ها

▶️ نحوه اجرای پروژه

پیش‌نیازها:

  • نصب بودن Java 17 یا بالاتر
  • نصب بودن Gradle (در صورت استفاده از Gradle Wrapper نیازی به نصب جدا نیست)
  • اتصال به دیتابیس (در صورت استفاده از MySQL یا سایر پایگاه‌های داده)

مراحل اجرای پروژه:

  1. کلون کردن پروژه از GitHub:

    git clone https://github.com/username/project-name.git
    cd project-name
  2. ساخت و نصب وابستگی‌ها (با Gradle Wrapper): روی سیستم‌های Unix/Linux/macOS:

    ./gradlew clean build

    روی ویندوز:

    gradlew.bat clean build
  3. اجرای پروژه: روی Unix/Linux/macOS:

    ./gradlew bootRun

    روی ویندوز:

    gradlew.bat bootRun
  4. اجرای فایل JAR (در صورت build کامل): پس از build، در مسیر زیر فایل jar ساخته می‌شود:

    build/libs/your-project-name.jar
    

    اجرای آن:

    java -jar build/libs/your-project-name.jar

آدرس پیش‌فرض اجرا:

http://localhost:8080

پیکربندی:

در صورت نیاز به تغییر پورت، اطلاعات دیتابیس و سایر موارد، به فایل‌های زیر مراجعه کنید:

  • src/main/resources/application.properties
  • یا: src/main/resources/application.yml

این پروژه مناسب کسانی است که می‌خواهند یک پایه قوی و قابل فهم برای پیاده‌سازی سیستم‌های احراز هویت و مجوزدهی در برنامه‌های جاوایی داشته باشند و به صورت مرحله‌به‌مرحله قابلیت گسترش و شخصی‌سازی را داراست.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages