خطای لینک ارسال شده به ایمیل کاربر

پرسیده شده
فعالیت 1738 روز پیش
دیده شده 1086 بار
0

سلام استاد خسته نباشید من لینک رو میفرستم و به ایمیل کاربر میره ولی وقتی کاربر کلیک میکنه به این erorr که واقعا نمیدونم چیه ؟

throw new InvalidArgumentException("Route [{$name}] not defined."); 

این exception از متود urlGenerator واسه من فرستاده میشه که روت لاگین در سیستم موجود نیست در حالی که من روت لاگین رو دارم 

Route [login] not defined.

اصلا نمیفهمم چرا داره به این روت میزنه من بهش گفتم که ایمیل به روت verify  بزنه و لینکشم که میبینم همون  verify روت منه

http://localhost/auth/email/verify?email=mori3nt3z%40gmail.com&expires=1563790651&signature=e002c0b1ddf49425c67bf2d8829642aeb67827cabeaf379934189fb6d85afff8

    فایل پیوست

    مرتضی حرمتی
    مرتضی حرمتی

    31 تیر 98

    1
    حذف شده

    مشکلت به این خاطر هستش که داخل فایل env مشخص نکردی که اسم سایتت رو روی localhost تنظیم کردی... به این خاطر زمانی که ایمیل ارسال میکنه سمت کاربر با آدرس localhost میفرسته ... در صورتی که شما داخل سایت laraticket.pro لاگین کردی و session شما برای اون سایت ایجاد شده... به همین خاطر زمانی که روی اون لینک کلیک میکنید شما میرید داخل localhost و خب شما داخل اون لاگین نیستید پس در نتیجه middleware auth جلوی شمارو میگیره و شما رو هدایت میکنه به route لاگین ...

    فایل پیوست

    مهرداد سامی

    توسط

    مهرداد سامی

    31 تیر 98

    0
    حذف شده

    سلام ... احتمال میدم مشکل از middleware باشه ... داخل کنترلرتون از middleware auth استفاده کردید؟ 

    چون اگه از اون استفاده کنید باید کاربر حتما لاگین باشه در غیراینصورت اونو ریدارکت میکنه به روت لاگین ... 

    فایل پیوست

    مهرداد سامی

    توسط

    مهرداد سامی

    31 تیر 98

    0
    حذف شده

    بله استاد توی کانستراتور verificationontroller این قسمت خودش به میدلور Auth زده شده  , وتوی میدلور ChekEmailStatus هم این کد رو مثه شما زدم 

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    
    class CheckEmailStatus
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            if($request->user() && !$request->user()->hasVerifiedEmail()){
                session()->flash('mustVerifiedEmail',true);
            }
            return $next($request);
        }
    }

     

    فایل پیوست

    مرتضی حرمتی

    توسط

    مرتضی حرمتی

    31 تیر 98

    حذف شده
    ولی همچنان مشکل داره و وقتی هم سرچی راجع بهش میزنم به این صفحه stackoverflow میرسم که میگه نباید name روت هاتون رو با .(dat) علامت گزاری کنید ... البته این پاسخ ها تایید نشدند از سمت سایت https://stackoverflow.com/questions/54407228/problem-in-defining-route-throw-new-invalidargumentexceptionroute-name-n/54407312
    مرتضی حرمتی

    31 تیر 98

    حذف شده
    استاد ویدیو کدها و اررور هم رو براتون فرستادم ... شانس ندارم من هر هفته باید به یه داستانی بخورم :))
    مرتضی حرمتی

    31 تیر 98

    حذف شده
    سلام من میدونم این مشکل از چیه دقیقا همین مشکل رو خودم داشتم دقیقا همون جایی که URL Generator رو ساختی احتمال خیلی زیاد مثل من فراموش کردی اولش return بزاری توی فایل VerificationEmail.php خط کد زیر رو بررسی کن درست نوشتی مثل این یا نه ؟ return URL::temporarySignedRoute('auth.email.verify',now()->addMinutes(120),['email'=>$this->user->email]); من دقیقا همین خطایی که شما نوشتین برای روت لاگین رو داشتم از اول اومدم بررسی کردم دیدم return اول این دستور رو جا انداخته بودم
    حذف شده
    یه اشتباه دیگه ام که من انجام داده بودم این بود که رفته بودم کنترولر های register , login رو توی مسیر app/http خودم از ابتدا ساخته بودم که بعدا متوجه شدم و درستش کردم ، اگر توی Route::group رو نگاه کنید از 'namespace' => 'Auth' استفاده شده که وقتی من اجرا میکردم خطا داشتم تا رفتم این namespace رو برداشتم و کد درست کار کرد ، اما بعد دیدم پوشه ی Auth وجود داره و کنترولرها هم داخلش هستن ، پس رفتم باز namespace رو گذاشتم و کنترولرهایی که از ابتدا نوشته بودم رو جایگزین قبلی ها کردم و درست شد :D