من یه وبسایت لاراولی دارم که احراز هویتش با laravel ui هست با توجه به نیازی که داشتم تو تنظیمات سشن expire_on_close رو false گذاشتم تا کاربر لاگ اوت نشه اما اینجوری دیگه نمیتونم ساعت ورود و خروج کاربرا به سایت رو دربیارم اگه راهی میشناسید لطفا پیشنهاد بدید راه مدنظر خودم اینه وقتی کابر صفح سایتو بست لاگ اوت نشه اما تو یه جدول دیتابیس براش خروج ثبت بشه اما نمیدونم چطور انجامش بدم یعنی چطور یه middleware برای خروج کاربر از صفحه قرار بدم؟
راه تمیز و مطمئن همونی که غیرفعالش کردید اما راه های دیگه ای هم هست.
می تونید توی فایل اصلی که بیس صفحه محسوب میشه با جاوا اسکریپت یا جی کوئری در زمان های مشخص چک کنید و آخرین حضور کاربر رو آپدیت کنید چون این فایل در سمت کاربر قرار داره تا زمانی اجرا میشه که صفحه توسط کاربر بسته نشده باشه بر همین اساس می تونید به صورت تقریبی آخرین حضورش رو توی دیتابیس داشته باشید.
function activity() {
// activity tabel update
}
setInterval(activity,60000);
با کمک jquery یا axios می تونید به صورت اتوماتیک هر چند لحظه یک درخواست به سرور ارسال کنید تا حضور کاربر رو ثبت کنه، هر زمان کاربر صفحه رو ببنده دیگه درخواستی ارسال نمیشه
سلام
شاید این راه براتون مناسب باشه
میتونید یک جدول برای ثبت فعالیت کاربر ایجاد کنید مثلا با نام activity حالا توی میدلور Authenticate یا هر میدلوری که بخواهید برای اعمال آپشن های متفاوت و بیشتر لحاظ کنید فعالیت کاربر رو بگیرید و توی دیتابیس یه رکورد ایجاد کنید.
میدلور رو هم می تونید به این شکل پیاده کنید
public function handle($request, Closure $next)
{
if ($request->user()->status() == 'registered')
{
//ثبت در جدول activity
return $next($request);
}
return redirect('/');
}
متد status هم در مدل user برای مشخص کردن وضعیت کاربر به عنوان شرط به کارتون میاد.
@hekmati الان مشکل من اینجاست که یه میدل ور اینطوری برای اینکه بفهمم کاربر آنلاینه یا نه درست کردم که بفمم کی وارد صفحات سایت شده اما نیتونم بفهمم کی از صفحات سایت خارج شده؟
راه تمیز و مطمئن همونی که غیرفعالش کردید اما راه های دیگه ای هم هست.
می تونید توی فایل اصلی که بیس صفحه محسوب میشه با جاوا اسکریپت یا جی کوئری در زمان های مشخص چک کنید و آخرین حضور کاربر رو آپدیت کنید چون این فایل در سمت کاربر قرار داره تا زمانی اجرا میشه که صفحه توسط کاربر بسته نشده باشه بر همین اساس می تونید به صورت تقریبی آخرین حضورش رو توی دیتابیس داشته باشید.
function activity() {
// activity tabel update
}
setInterval(activity,60000);
با کمک jquery یا axios می تونید به صورت اتوماتیک هر چند لحظه یک درخواست به سرور ارسال کنید تا حضور کاربر رو ثبت کنه، هر زمان کاربر صفحه رو ببنده دیگه درخواستی ارسال نمیشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟