علیرضا مه آبادی
3 سال پیش توسط علیرضا مه آبادی مطرح شد
6 پاسخ

عدم لاگین شدن کاربر بعد از رجیستر از طریق شماره مبایل

درود بنده می خوام بعد از اینکه کاربر از طریق پیامک رجیستر شد لاگین هم بشه اما این اتفاق نمیوفته؟؟!!
این کد مربوط به کنترلر بنده

 public function store(Request $request)
    {
            $validData = $request->validate([
                'user_name' => ['required', 'string', 'max:255', 'min:3'],
                'phone' => ['required', 'regex:/^09(1[0-9]|3[1-9]|2[1-9])-?[0-9]{3}-?[0-9]{4}$/', 'unique:users,phone']
            ]);

            $user=User::create([
                'name'=>$request->user_name,
                'phone'=>$request->phone
            ]);

           $code=ActiveCode::GenerateCode($user);
           $user->notify(new ActiveCodeNotification($code,$validData['phone']));

            return redirect(route('get.token'));
        }

اینم کد کنترلر مربوط به تایید کد ارسالی

  public function get_token(Request $request)
    {

        return view('auth.token-phone');
    }

    public function post_token(Request $request,User $user)
    {
        $request->validate([
            'token' => ['required']
        ]);

        $status = ActiveCode::verifyCode($request->token ,$user);

       if (!$status){
          $user->activeCode()->delete();

//           Auth::login($user);
          \auth()->loginUsingId($user->id);
           alert()->success('ثبت نام شما با موفقیت انجام شد', 'خانه هوشمند آریا')->autoclose('4000');
           return redirect('/');
       }

       else{
           return redirect('/register');
       }
    }

و کاربر به درستی ثبت نام میشود ولی لاگین خیر!
این کد هم تفاوتی نمی کنه

 Auth::login($user);

ثبت پرسش جدید
احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
0

دوستان مشکل عزیزمون از این بود که اطلاعات کاربر فعلی از پایگاه داده برنمیگشت و متغیر $user همیشه خالی بود.


Mohammad
تخصص : 5656565
@Reza.7 3 سال پیش مطرح شد
0

این کد از مدل رو بفرستید

$status = ActiveCode::verifyCode($request->token ,$user)

احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
0

سلام
این کد رو در کنترل مربوط به ارسال پیام بعد از کدauth()->loginUsingId($user->id) اضافه کنید وخروجیش رو بفرستید :

dd(Auth::check());

علیرضا مه آبادی
تخصص : در حال یادگیری لاراول
@aliasgharkashani1379 3 سال پیش مطرح شد
0

@Reza.7 خدمت مهندس عزیز

 public function scopeVerifyCode($query,$code,$user)
    {
        return !! $user->activeCode()->where('code',$code)->where('expired_at' , '>' , now())->first();
    }

ولی این کد ب درستی کار می کنه
و این کد داخل مدل ActiveCode قرار دارد


علیرضا مه آبادی
تخصص : در حال یادگیری لاراول
@aliasgharkashani1379 3 سال پیش آپدیت شد
0

@ehsndvr مهندس false برمیگردونه!! البته مهندس همین رو داخل کنترلر اولی چک می کنم true میده اما داخل کنترلر مربوط به توکن چک می کنم فالس میده در صورتی که کاربر در کنترلر قبلی اسم و شمارش در دیتا بیس ذخیره شده البته من می خوام در کنتلر دومی عملیات لاگین انجام شه.


احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش آپدیت شد
0

از متغیر user هم dd بگیرید و بررسی کنید اصلا دارای مقدار هستش یا نه ؟
اگر هم عجله دارید تشریف بیارید تلگرام مشکل رو حل کنیم ، آیدی تلگرام بنده : @ehsndvr


احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
0

دوستان مشکل عزیزمون از این بود که اطلاعات کاربر فعلی از پایگاه داده برنمیگشت و متغیر $user همیشه خالی بود.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام