راکت
حل شده

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

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);
ثبت پرسش جدید

پاسخ‌ها

6
احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

بهترین پاسخ

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

Mohammad
Mohammad
@Reza.7

تخصص: 5656565

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

$status = ActiveCode::verifyCode($request->token ,$user)
احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

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

dd(Auth::check());

شاید پاسخ شما همین‌جا باشد

علیرضا مه آبادی
علیرضا مه آبادی
@aliasgharkashani1379

تخصص: در حال یادگیری لاراول

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

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

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

علیرضا مه آبادی
علیرضا مه آبادی
@aliasgharkashani1379

تخصص: در حال یادگیری لاراول

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

احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

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

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

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