ریدایرکت کردن کاربر به آخرین صفحه ای که بود بعد از login

2 ماه پیش
توسط marik آپدیت شد
کیمیا ( 80 تجربه )
3 سال پیش

سلام دوستان. چطور باید کاربر رو به آخرین صفحه ای که قبل از لاگین کردن بود ریدایرکت کرد؟

بهترین پاسخ انتخاب شده توسط کیمیا
مهدی
3 سال پیش

نگاه کن بذار موضوع رو برات باز کنم
اگه کاربر بدون اینکه لاگین کرده باشه یه url که نیاز به لاگین داره (auth middleware) رو درخواست کنه لاراول میاد یک کلید url.intended توی session ها ایجاد میکنه که بعد لاگین به همون صفحه برگرده حالا ما میام یه تیریک میزنیم که در واقع این کلید رو ایجاد کنیم.
برو توی Auth/LoginController متد زیر رو کپی کنقرار بده و همه چی تمومه:

    /**
     * Show the application's login form.
     *
     * @return \Illuminate\Http\Response
     */
    public function showLoginForm()
    {
        if (!session()->has('url.intended')) {
            session(['url.intended' => url()->previous()]);
        }
        return view('auth.login');
    }

کاری که این متد انجام میده اینه که اگه کلید url.intended وجود نداشته باشه اون رو ایجاد میکنه و مقدارشو url قبلی قرار میده و بعد میره به صفحه لاگین و تمام

سیدعلی موسوی ( 105214 تجربه )
3 سال پیش
تخصص : سی شارپ و پی اچ پی

با استفاده از هلپر فاکشن

return back();

کیمیا ( 80 تجربه )
3 سال پیش

نه. منظور من رو متوجه نشدید.

مهدی ( 23172 تجربه )
3 سال پیش

نگاه کن بذار موضوع رو برات باز کنم
اگه کاربر بدون اینکه لاگین کرده باشه یه url که نیاز به لاگین داره (auth middleware) رو درخواست کنه لاراول میاد یک کلید url.intended توی session ها ایجاد میکنه که بعد لاگین به همون صفحه برگرده حالا ما میام یه تیریک میزنیم که در واقع این کلید رو ایجاد کنیم.
برو توی Auth/LoginController متد زیر رو کپی کنقرار بده و همه چی تمومه:

    /**
     * Show the application's login form.
     *
     * @return \Illuminate\Http\Response
     */
    public function showLoginForm()
    {
        if (!session()->has('url.intended')) {
            session(['url.intended' => url()->previous()]);
        }
        return view('auth.login');
    }

کاری که این متد انجام میده اینه که اگه کلید url.intended وجود نداشته باشه اون رو ایجاد میکنه و مقدارشو url قبلی قرار میده و بعد میره به صفحه لاگین و تمام

sajjad ( 310 تجربه )
6 ماه پیش

این کد رو در ورپرس کجا باید قرار داد؟
ممنون میشم راهنمایی بفرمایید

حسین شفیعی ( 7545 تجربه )
6 ماه پیش
تخصص : توسعه دهنده لاراول

ببین برای اینکار :
کاربر میخواد وارد یه صفحه ای بشه که بعدش ریدایرکت میشه به صفحه ی لاگین . این ریدایرکت شدنه توی یه میدلور اتفاق میفته درسته؟
توی اون میدلور url حال حاضر رو میگیری میریزی تو یه سشن بعد وقتی کاربر لاگین شد اون سشن رو میخونی و میفرستیش به اون صفحه اوکی شد؟
در غیر اینصورت باید تو صفحه لاگین url قبلی رو بخونی اما اگه قبلش لاگین رو تو یه صفحه جدا پیاده سازی کنی url قبلی میشه اون صفحه لاگین نه اون صفحه ای که قبل از لاگین شدن داخلش بود. برای حل این مشکل لاگین شدن رو باید با یه مدال پیاده سازی کنی یعنی هر جا نیاز به لاگین شد وارد صفحه ی دیگه ای نشه کاربر همونجا به مدال باز بشه بگه باید وارد شی .
امیدوارم توضیحاتمو متوجه شده باشی:-)

marik ( 100 تجربه )
2 ماه پیش

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

برای ارسال پاسخ باید وارد سایت شوید