PDA

View Full Version : سوال: شیوه ی لاگین به چه صورت است؟



paressep28
یک شنبه 16 تیر 1398, 10:42 صبح
سلام
در ساختار mvc خب ما یه index داریم که هسته ی سایت است
در پنل مدیریت شیوه ی لاگین طبق ساختار mvc به چه صورت است؟
یعنی کاربر ابتدا وارد هسته میشه چک میشه آیا سشن ست شده اگه ست نشده هدر کن به فایل لاگین دیگه (با کنترل و ویو و مدل خودش)یا چیز دیگه ای هست؟

ali_sed
سه شنبه 18 تیر 1398, 12:53 عصر
سلام
در ساختار mvc خب ما یه index داریم که هسته ی سایت است
در پنل مدیریت شیوه ی لاگین طبق ساختار mvc به چه صورت است؟
یعنی کاربر ابتدا وارد هسته میشه چک میشه آیا سشن ست شده اگه ست نشده هدر کن به فایل لاگین دیگه (با کنترل و ویو و مدل خودش)یا چیز دیگه ای هست؟

سلام

شما نیاز به بخشی برای مدیریت دسترسی به صفحات (Access Control List) دارید. اینکه چه کاربری به کدام کنترلر و یا ویو دسترسی دارد. می توانید عبارت PHP ACL را جستجو کنید. acl می تواند با استفاده از یک کلاس Single Instance پیاده شود. این کلاس حاوی نوع کاربران (مثلا مهمان، مشتری، کارمند، مدیر) و لیست کامل کنترلرها و ویوها می باشد. سپس با استفاده از دو متد می توانید دسترسی یک کاربر به یک ویو را بدهید یا بگیرید. اگر تعداد کنترلرها زیاد نیست و نوع کاربران تغییر نمی کند، می توانید آنها را بصورت هارد کد داخل همین کلاس acl درج کنید در غیر اینصورت به بخشی برای تعریف نوع کاربران و کنترلرها و ویوها و بخشی نیز برای تعیین دسترسی های هر کاربر دارید.

نوع کاربر در سشن ذخیره می شود. برای اولین بار که یک کاربر وارد سایت میشود مقدار نوع کاربر خالی است پس آن را به عنوان مهمان در نظر میگیریم. وقتی کاربر لاگین کند نوع کاربر با توجه به مشخصات کاربر در سشن تغییر میدهیم.

حال در هسته برنامه که ممکنه در ایندکس پیاده شده باشه یا در فایل application.php کافیست یک نمونه از کلاس acl ایجاد کنید. و با توجه به نوع کاربر و کنترلر و ویویی که در آن قرار دارد بررسی کنید آیا این کاربر مجاز به مشاهده این صفحه است یا خیر. سپس می توانید کاربر را به صفحه مثلا لاگین با پیام مناسبی هدایت کنید.

توصیه می کنم ابتدا از یک فریم ورک مناسب مانند زند یا لاراول استفاده کنید تا بهتر با این مفاهیم آشنا شوید سپس فریمورک مخصوص خود را طراحی کنید.