آفلاین
user-avatar

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

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

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

بهترین پاسخ انتخاب شده توسط کیمیا
آفلاین
user-avatar
مهدی
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 قبلی قرار میده و بعد میره به صفحه لاگین و تمام

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

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

return back();

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

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

آفلاین
user-avatar
مهدی ( 23232 تجربه )
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 قبلی قرار میده و بعد میره به صفحه لاگین و تمام

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

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

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

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

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

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

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