آشنایی با SailsJS – بخش دوم

در مطلب قبلی با شیوه ایجاد کنترولر, مدل و نوشتن مسیرها آشنا شدید. در این بخش می‌خواهیم یک کنترولر برای کاربرها ایجاد کنیم و فقط اجازه انتشار به کاربرانی که وارد شده‌اند را بدهیم.

به طور کلی برای انجام این کار باید یک کنترولر و مدل برای کاربرها ایجاد کنیم و بر روی اکشن‌هایی که می‌خواهیم کاربر بدون لاگین کردن به آن‌ها دسترسی نداشته باشه محدودیت بزاریم.

کنترولر کاربرها
همانطور که در بخش قبلی این آموزش با روش های ایجاد یک کنترولر آشنا شدیم الان باید یک کنترولر به نام  Users ایجاد کنیم.

بعد از ایجاد کنترولر, سه اکشن register, login و logout رو باید ایجاد کنیم.

کار هرکدام از اکشن‌ها کاملا مشخص هست, برای مثال اکشن Register نام‌ کاربری و رمزعبور را از درخواست HTTP می‌گیرد, نام‌ کاربری را در پایگاه‌داده جستجو می‌کند, در صورتی که نام‌کاربری موجود بود, به کاربر اطلاع می‌دهد که نام‌کاربری از قبل ثبت شده و اگر موجود نبود کاربر جدید را با اطلاعات دریافتی ایجاد می‌کند و اطلاعات کاربر را به‌صورت JSON برمی‌گرداند.

ایجاد مدل کاربر
برای ایجاد مدل کاربر, مانند بخش اول, از دستور زیر استفاده می‌کنیم:

حال باید داخل فایل مدل که در مسیر api/models/User.js قرار دارد, کد زیر را وارد کنیم:

حال کنترولر می‌تواند با مدل ارتباط برقرار کند و اطلاعات را ذخیره کند.

تعیین مسیرها
همانطور که در بخش اول آموزش دیده بودید, برای هر اکشن داخل کنترولر باید یک مسیر تعریف کنیم که بتوان با آن کار کرد. برای این کار وارد فایل config/routes.js شوید و ۳ مسیر برای اکشن‌های کنترولر کابران ایجاد کنید:

۳ مسیر آخر مربوط به کنترولر جدیدمان می‌باشند.

Policies
پالیسیز در سیلز ابزاری هستند برای تعیین دسترسی و از آن‌ها وقتی می‌خواهیم دسترسی به یک کنترولر را محدود کنیم، استفاده می‌کنیم. برای مثال, اگر شما دارید یک وبلاگ می‌سازید, قبل از اینکه کاربر بتونه مطلبی ایجاد کنه, باید چک کنید که آیا اون کاربر در سیستم وارد شده یا نه. سیلز به طور پیش‌فرض یک پالیسی با عنوان sessionAuth در پوشه api/policies دارد که می‌توان برای تایین دسترسی از آن استفاده کرد.

محتوا این فایل به این صورت است و اگر این فایل را در پوشه policies نیافتید, آن را ایجاد کنید و کد زیر را در آن قرار دهید:

برای اینکه این پالیسی بر روی اکشن‌های کنترولر پست‌ها اعمال شود, باید آن را در فایل config/policies.js تعریف کنیم. برای اینکار, کد زیر را در فایل اضافه کنید:

حال از این به بعد هر وقت بخواهید پستی ایجاد کنید, باید لاگین کرده باشید.

در حال حاضر ما یک API ساده برای ثبت‌نام و ورود کاربران و ایجاد, بروزرسانی مطالب ایجاد کرده‌ایم. بعد از این شما می‌تونید با استفاده از یکی از فریمورک‌های سمت کاربر مانند ری‌اکت با API تعامل برقرار کنید و یک پنل برای تمام این کارها ایجاد کنید. همچنین برای تست می‌تونید با استفاده از ابزار Postman درخواست به API ارسال کنید و از صحت کارکرد API مطمئن شوید.

سورس کد کامل در گیت‌هاب

عرفان بشارت

یک توسعه دهنده نرم افزار که دوست داره دانش خودش رو با بقیه به اشتراک بزاره

همچنین ممکن است دوست داشته باشید ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *