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

1 سال پیش توسط marik آپدیت شد
آفلاین
user-avatar
کیمیا ( 80 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

1

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

بهترین پاسخ
آفلاین
user-avatar
مهدی
4 سال پیش

نگاه کن بذار موضوع رو برات باز کنم
اگه کاربر بدون اینکه لاگین کرده باشه یه 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 قبلی قرار میده و بعد میره به صفحه لاگین و تمام

آفلاین
user-avatar
سیدعلی موسوی ( 142998 تجربه )
4 سال پیش
تخصص : سی شارپ و پی اچ پی

لینک کوتاه اشتراک گذاری

0

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

return back();

آفلاین
user-avatar
کیمیا ( 80 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

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

آفلاین
user-avatar
مهدی ( 23322 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

2

نگاه کن بذار موضوع رو برات باز کنم
اگه کاربر بدون اینکه لاگین کرده باشه یه 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 قبلی قرار میده و بعد میره به صفحه لاگین و تمام

آفلاین
user-avatar
sajjad ( 310 تجربه )
2 سال پیش

لینک کوتاه اشتراک گذاری

0

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

آفلاین
user-avatar
حسین شفیعی ( 7720 تجربه )
2 سال پیش
تخصص : توسعه دهنده لاراول

لینک کوتاه اشتراک گذاری

0

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

آفلاین
user-avatar
marik ( 100 تجربه )
1 سال پیش

لینک کوتاه اشتراک گذاری

0

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

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.