🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۹ اورنگ چلبی
خطای نامشخص
جامعه لاراول ایجاد شده در ۲۷ اسفند ۱۴۰۱

سلام وقتتنون بخیر

بعد از پیاده سازی کدها

هنگام وارد کردن کد ارسالی اگر کد منقضی شده بود به صفحه سفید میخوردم اگر که نه لاگین میشدم

برای رفع دو جا dd گرفتم بعد از اون مشکل خود به خود رفع شد

کلاس کنترلرم

    public function confirmCode()
    {
        $this->validateCode();
        $response = $this->twoFactor->activate();
        return $response === $this->twoFactor::ACTIVATE
            ? redirect()->route('index')
            : redirect()->back()->with('CantSentCode', true);
    }

کلاس two factor

    public function activate()
    {
        if (!$this->isValidateCode()) return static::INVALID_CODE;
  
        $this->getToken()->delete();
        $this->getUser()->activeTwoFactor();
        $this->forgetSession();
        return static::ACTIVATE;
    }

جاهایی ک dd گرفتم و بعد از اون مشکل رفع شد

در کلاس کنترلر از response بود و در کلاس two factor بعد از if بود

حالا میخواستم بدونم این خطا به کجا برمگیرده ؟

در مورد

    public function forgetSession()
    {
        session(['user_id', 'code_id']);
    }


$this->forgetSession();

میخواستم بدونم به چه شکل سشن‌های ما پاک میشه وقتی delete روشون صورت نگرفته؟

اورنگ چلبی ۲۷ اسفند ۱۴۰۱، ۱۱:۰۶

سلام مهدی عزیز

در مورد خطای اول احتمالا در ست کردن سشن‌ها بوده و ریدایرکت انجام میشده که رفع شده.

و در مورد بخش دوم مقدار دیفالت دو سشن رو برابر هیچ قرار میدیم و پاک میشه.

https://laravel.com/docs/10.x/session

مهندس آمنه خداپناهی ۲۷ اسفند ۱۴۰۱، ۱۱:۴۹
public function forgetSession()
    {
        session(['user_id', 'code_id']);
    }

یعنی اینجا ایندکس‌های ما چون value نگرفتن default null میگیرن؟

اورنگ چلبی ۲۷ اسفند ۱۴۰۱، ۱۱:۵۳

اگر به نام متد هم دقت کنید فورگت میشه و مقدار داخلش حذف میشه.

قبل فورگت:

f30f-codes-php-tests-laravel-public- (1).png

بعد فورگت:

5c0a-codes-php-tests-laravel-public-.png

مهندس آمنه خداپناهی ۲۷ اسفند ۱۴۰۱، ۱۲:۳۶

من ی بار اینجا dd گرفتم

    public function requestCode(User $user)
    {
        // method one
        $code = TwoFactor::generateCodeFor($user);
        $code->send();
        $this->setSession($code);
        
        dd($this->setSession($code));
        return static::CODE_SEND;
    }

بم

null // app\\Services\\TwoFactorAuthentication.php:24

ی بارم اینجا

    public function activate()
    {
        if (!$this->isValidateCode()) return static::INVALID_CODE;
  
        $this->getToken()->delete();
        $this->getUser()->activeTwoFactor();
        $this->forgetSession();
        dd($this->forgetSession());
        return static::ACTIVATE;
    }

که بازم Null میده

اورنگ چلبی ۲۷ اسفند ۱۴۰۱، ۱۳:۰۹

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

اونجا ی تاپیک براش باز میکنم

اورنگ چلبی ۲۷ اسفند ۱۴۰۱، ۱۳:۱۲

مهدی عزیز

داخل این متدها چیزی برگردونده نمیشه که شما ازش دامپ گرفتی...

این متدها کار س و فورگت رو انجام میدند و چیزی بر نمیگردونن.

مهندس آمنه خداپناهی ۲۷ اسفند ۱۴۰۱، ۱۳:۴۸

شما برای result تتون چی رو dump کردید؟

اورنگ چلبی ۲۷ اسفند ۱۴۰۱، ۱۳:۵۵

کل سشن‌ها رو:

session()->all();
بهترین پاسخ
مهندس آمنه خداپناهی ۲۷ اسفند ۱۴۰۱، ۱۴:۱۵