رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عدم ورود کاربر با چند سیستم همزمان در Yii2
#1
Question 
با سلام؛ من چندتا سؤال دارم در خصوص کاربران و مدیریت نشست های کاربر

1- چطور می تونم کاربر را محدود کنم به اینکه فقط با یک سیستم بتواند وارد شود و همزمان با یک نام کاربری با دو سیستم نشه وارد شد.

2- چطور می توانم برای کاربرام زمان ورود تعیین کنم مثلاً بگم کاربر user1 از ساعت 8 لغایت 13 فقط می تونه وارد بشه یا اصلا از ساعت 8 مورخ 1400/03/20 لغایت 8 مورخ 1400/03/22 نتونه وارد پنل کاربری خود بشه

3- چطور IP کاربر را قفل کنیم با این IP نتونه بیاد برای مثلا مدت محدود

اگر دوستان مثال عملی دارن لینک بدن یا توضیح بدن ممنون میشم
با تشکر
پاسخ
تشکر شده توسط:
#2
1- برای حل این موضوع باید توی جدول کاربران یک فیلد اضافه کنید برای نگهداری IP و کاربر زمانی که لاگین میکنه IP رو توی این جدول نگه دارین و وقتی خارج میشه دوباره NULL کنید. موقع ورود چک کنید که این فیلد NULL نباشه. برای حل مشکل زمان‌هایی که کاربر بدون خروج از حسابش مرورگر رو میبنده هم میتونین یک فیلد دیگه داشته باشین تحت‌عنوان آخرین فعالیت که هربار درخواستی از سمت کاربر میاد (هر کاری توی سایت انجام بده که به سرور مربوطه میشه) اون فیلد رو آپدیت کنید. موقع چک‌کردن فیلد IP برای لاگین بررسی کنید اگه از آخرین فعالیتش زمان مشخصی گذشته (مثلاً 20 دقیقه) فیلد IP رو NULL کنید چون عملاً دیگه کاربر خارج‌شده از سایت محسوب میشه.

2- برای این موضوع هم باید فیلدهایی رو به جدول کاربران اضافه کنید یا اگه انعطاف‌پذیری بیشتری میخواین، یک جدول جدید تحت‌عنوان زمانبندی فعالیت اضافه کنید که فیلدهای user_id و start_date و start_time و end_date و end_time و همچنین فیلدی به‌اسم is_enabled داره. حالا موقعی که کاربر میخواد لاگین کنه، یا اصلاً نباید توی این جدول رکوردی داشته باشه یا اینکه براساس اینکه الآن چه تاریخ و زمانی هست، چک کنید که توی اون جدول رکوردی دارین که اون زمان شاملش بشه (و is_enabled=1 باشه) یا برعکس، رکوردی وجود نداره که اون زمان شاملش میشه و is_enabled=0 هست.

3- میتونین یک جدول blocked_ips داشته باشین که آدرس IP و زمان شروع و پایان محدودیت رو نگهداری میکنین و اگه IP کاربر توی اون جدول پیدا شد و زمان جاری هم بین زمان شروع و پایان محدودیت بود، اجازه‌ی وجود ندین.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان