سلام وقت بخیر
من کد زیر برای ثبت ip کاربر موقع ثبت نام قرار دادم نمیدونم مشکل از کد هست یا چون حالت local هستم به جواب نرسیدم لطفا راهنمایی کنید مشکل کجاست
لاگین کنترلر
protected function authenticated(Request $request, $user)
{
return $this->loggendin($request , $user);
// if ($user->status != 0) {
// Auth()->logout();
// return redirect('/');
// }
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->getClientIp()
]);
}
protected $fillable = [
'name', 'email', 'password','two_factor_type' , 'phone_number' , 'is_superuser' , 'is_staff' , 'status' , 'last_login_at','last_login_ip',
];
$table->datetime('last_login_at')->nullable();
$table->string('last_login_ip')->nullable();
شما قبل اینکه آپی کاربو سیو کنی return کردی
protected function authenticated(Request $request, $user)
{
return $this->loggendin($request , $user);
if ($user->status != 0) {
Auth()->logout();
return redirect('/');
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->header('User-Agent')
]);
}
ببین در این متد شما قبل سیو آپی از متد بیرون اومدی پس مشخصا به دستور ذخیره آپی نمیرسه که آپی رو ذخیره بکنه. اون کد باید یه جوری برداشته بشه.
انیطوری بنویسش
protected function authenticated(Request $request, $user)
{
if ($user->status == 0) {
Auth()->logout();
return redirect('/');
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->ip()
]);
return $this->loggendin($request , $user);
}
سلام راهنمایی این دوستمون (@hosseinshirinegad98 ) کاملا درسته میده ip رو .ولی بهتون پیشنهاد میکنم اگه میخای برای مبحث امنیتی سایت کاری بکنی کلا بهتره که ip همراه با اطلاعات دستگاه یا سیستم عاملش رو ذخیره کنی.
اگه هم میخای اطلاعات اماری ثبت کنی (امار بازدید سایت) همین ip که ثبت میکنی کافیه
اما برای هر نوع استفاده ای میخای همچین جالب نیست داری توی جدول کاربر ذخیره میکنی. مگه کاربر با یک دستگاه وارد سایت میشه؟ شاید با گوشی یا چند تا سیستم وارد بشه.اینم کدی که اطلاعات سیستم عامل و اطلاعات نوع نرم افزاری که باهاش وب سایت رو اورده بالا نشون میده
= $request->header('User-Agent')
@hosseinshirinegad98
@mohsen.mehri6101
ممنونم ازتون من هر دو مورد فرمودید قرار دادم ولی توی دیتابیس ip ذخیره نشد
امکان داره چون رو هاست نیستم و روی لوکال هستم چیزی ثبت نمیکنه؟
protected function authenticated(Request $request, $user)
{
return $this->loggendin($request , $user);
if ($user->status != 0) {
Auth()->logout();
return redirect('/');
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->header('User-Agent')
]);
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' =>request()->ip(),
]);
شما قبل اینکه آپی کاربو سیو کنی return کردی
protected function authenticated(Request $request, $user)
{
return $this->loggendin($request , $user);
if ($user->status != 0) {
Auth()->logout();
return redirect('/');
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->header('User-Agent')
]);
}
ببین در این متد شما قبل سیو آپی از متد بیرون اومدی پس مشخصا به دستور ذخیره آپی نمیرسه که آپی رو ذخیره بکنه. اون کد باید یه جوری برداشته بشه.
انیطوری بنویسش
protected function authenticated(Request $request, $user)
{
if ($user->status == 0) {
Auth()->logout();
return redirect('/');
}
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->ip()
]);
return $this->loggendin($request , $user);
}
@hosseinshirinegad98
خیلی خیلی ممنونم ازتون
بله کاملا درسته
موقع ثبت نام هم نیاز هست ip ثبت بشه ؟
یا فقط لاگین کفایت میکنه؟
برای لاگین این کار خوبه اما برای رجیستر هر طور که مایلی. البته برای ارسال کامنت آپی رو سیو میکنن.
نه هنوز اوکی نشده
اینترنتم یاری نمیکنه فایلو هنوز موفق نشدم بفرستم براتون
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟