راکت
حل شده

مشکل در ورود دو مرحله ای و تعریف trait

1 پاسخ

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

   protected function authenticated(Request $request, $user)
    {
        if($user->hasTwoFactorAuthenticatedEnabled()) {
            auth()->logout();

            $request->session()->flash('auth' , [
                'user_id' => $user->id,
                'using_sms' => false,
                'remember' => $request->has('remember')
            ]);

            if($user->two_factor_type == 'sms') {
                $code = ActiveCode::generateCode($user);
                // Todo Send Sms

                $request->session()->push('auth.using_sms' , true);
            }

            return redirect(route('2fa.token'));
        }

        return false;
    }

بیام کد رو انتقال بدم به یک trait دیگر که تعریف کردم به اسم TwoFactorAuthenticated در پوشه Auth کنترلر ها پس اومدم اون صفحه رو به شکل زیر ساختم

<?php

namespace App\Http\Controllers\Auth;

use App\Models\ActiveCode;
use Illuminate\Http\Request;

trait TwoFactorAuthenticate
{
    public function loggedin(Request $request , $user)
    {
        if($user->hasTwoFactorAuthenticatedEnabled()) {
            auth()->logout();

            $request->session()->flash('auth' , [
                'user_id' => $user->id,
                'using_sms' => false,
                'remember' => $request->has('remember')
            ]);

            if($user->two_factor_type == 'sms') {
                $code = ActiveCode::generateCode($user);
                // Todo Send Sms

                $request->session()->push('auth.using_sms' , true);
            }

            return redirect(route('2fa.token'));
        }

        return false;
    }
}

و در متد authenticated در کنترلر لاگ این گفتم ...

 protected function authenticated(Request $request, $user)
    {
        return $this->loggedin($request , $user);
    }

ولی در هنگام اجرا ارور میده که این متد loggedin که درکنترلر لاگ این تعریف کردی اصلا وجود نداره نمیدونم کجا رو اشتباه کردم ممنون میشم کمک کنید دوستان

ثبت پرسش جدید

پاسخ‌ها

1
مهران مرندی
مهران مرندی
@mehranmarandi

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

بهترین پاسخ

به نظر همه چیز درست میاد، فقط trait رو در داخل کلاس use کردید؟

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

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

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