رفع مشکل نال بودن auth لاراول
کتابخانه الکترونیکی دیتا ساینس
به طور پیش فرض میدلور وب (middleware) لاراول در قسمت وب (web middleware group) مقداردهی میشود. هنگامی که مسیر یا route معتبر پیدا نشود، این گروه از میدلور هرگز مقداردهی اولیه نمیشوند. بنابراین متد auth مقدار null برمیگرداند، چون نمیتواند کاربر هویت شده یا وارد شده را پیدا کند. برای حل این مشکل (رفع مشکل نال بودن auth لاراول) میتوان میدلور زیر را از web ($middlewareGroups) به $middleware منتقل کنید.
\Illuminate\Session\Middleware\StartSession::class
اما این راه حل مشکلی را برای مسیرها یا route های گروههای دیگر مانند api به وجود میآورد به خاطر اینکه تمامی این مسیرها دارای session فعال، خواهند بود.
یکی از مواردی که با این مسئله مواجه میشوید یعنی نال بودن auth لاراول این است که شما میخواهید به جای صفحات پیش فرض خطاها، صفحات طراحی شده خودتان به کاربر نمایش دهید تا بتوانید تجربه کاربری بهتری را به وجود آوردید. در این حالت در برخی از exception ها به مانند پیدا نشدن مسیر یا route، متد auth لاراول، مقدار null برمیگرداند. البته این مورد، زمانی اهمیت دارد که شما بخواهید، صفحات نمایش خطاها برای کاربر وارد شده (لاگین شده) با کاربران مهمان متفاوت باشد.
منبع: https://stackoverflow.com/questions/44334983/auth-method-null-on-exceptions