🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۹ Mahdi
خطای نامشخص
جامعه لاراول ایجاد شده در ۲۷ اسفند ۱۴۰۱

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

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

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

برای رفع دو جا 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 روشون صورت نگرفته؟

Mahdi ۲۷ اسفند ۱۴۰۱، ۱۱:۰۶

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

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

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

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

احمدرضا فاطمی کیا ۲۷ اسفند ۱۴۰۱، ۱۱:۴۹
public function forgetSession()
    {
        session(['user_id', 'code_id']);
    }

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

Mahdi ۲۷ اسفند ۱۴۰۱، ۱۱:۵۳

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

قبل فورگت:

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 میده

Mahdi ۲۷ اسفند ۱۴۰۱، ۱۳:۰۹

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

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

Mahdi ۲۷ اسفند ۱۴۰۱، ۱۳:۱۲

مهدی عزیز

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

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

احمدرضا فاطمی کیا ۲۷ اسفند ۱۴۰۱، ۱۳:۴۸

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

Mahdi ۲۷ اسفند ۱۴۰۱، ۱۳:۵۵

کل سشن‌ها رو:

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