قصد داریم در این مقاله مختصر توضیحاتی در خصوص پیادهسازی یک پروژه فروشگاهی با spring boot را خدمت شما ارائه دهیم.
این پروژه یک فروشگاه با قابلیتهای زیر است :
اگر سایر مقالههای ما را بررسی کرده کرده باشید، مشاهده میکنید که ما از معماری 3Tier layer برای پیادهسازی پروژهها استفاده میکنیم. در اینجا نیز قصد داریم از این معماری بهره بگیریم.
همانطور که در تصویر مشاهده میکنید entityهای ما شامل موارد زیر است:
کلاس Product :
همانطور که در تصویر مشاهده میکنید ما از کلاس Category یک Relation از نوع OneToOne به کلاس Product ایجاد کردیم.
کلاس UserSecurity :
در این لایه سرویسهای ما وجود داشته که به اختصار توضیحاتی در مورد مسئولیتهای آنها، میدهیم.
یکی از بخشهایی که ما از تکنولوژی JWT استفاده میکنیم، در هنگام لاگین است. به نمونه کد زیر دقت کنید :
ما برای ذخیره پسورد از متد MD5 بهره بردیم که این متد در هنگام ثبتنام پسورد را به صورت MD5 ذخیره میکند. برای لاگین نیز میبایست پسورد ورودی را MD5 کرده و سپس با پسورد ذخیره شده مقایسه کنیم.
طبق تصویر اگر تمامی موارد ورودی صحیح باشد، توسط کلاس jwtService یک توکن به کاربر ارجاع میدهیم. این توکن جهت درج در header ریکوست، در درخواستهای بعدی تولید شده است.
برای ساخت توکن به موارد زیر نیازمندیم:
ما برای مدیریت هر چه بهتره ریکوستها یک Aspect Oriented Programming (AOP) تعریف کردیم به نام Auth و یک سری تنظیمات به آن اضافه نمودیم که در تصویر مشاهده میکنید.
نحوهی کار این AOP بدین صورت است که قبل از request قرار میگیرد (در معرفی لایهی Api توضیح میدهیم) که مسئولیت بررسی دسترسی کاربر به اون api را برعهده دارد.
همانطور که پیشتر گفتیم در هنگام لاگین یک توکن برای کاربر تولید شده که میبایست در سایر ریکوستها این توکن در header قرار بگیرد. زمانیکه ریکوست وارد سیستم میشود این annotation توکن را از header خوانده و توسط کلاس jwtService بررسی میکند که آیا این توکن دسترسی به ریکوست خواستهشده را دارد و یا خیر.
ما برای هر یک از entity های خود یک controller در نظر گرفتیم.
طبق تصویر در بعضی ریکوستها annotation Auth قرار دارد که پیشتر در مورد آن توضیح دادیم.
مسیر مادر در این کلاس category/ بوده و سایر api ها وابسته به کاربردشان دارای مسیر خود هستند.
ما سعی نمودیم در این پروژهی کاربردی چگونگی پیادهسازی و استفاده از jwt و postgreSQL در محیط Spring Boot را خدمت شما ارائه دهیم.
پیشنهاد میکنیم جهت درک بهتر، کد را به صورت کامل از صفحه github ما مشاهده نمایید.
در صورتیکه انتقاد و یا پیشنهادی دارید، در قسمت نظرات ما را مطلع نمایید. همچنین میتوانید برای دسترسی به کدهای بیشتر از سایت ما دیدن کنید.