laravel jetstream 로그인 후 의도한 페이지(이전 페이지)로 이동하기 > IT 기술백서

IT 기술백서

직접 알아내거나 검색하기 귀찮아서 모아 둔 것

php | laravel jetstream 로그인 후 의도한 페이지(이전 페이지)로 이동하기

본문

jetstream + livewire 로 스캐폴딩하였는데 로그인 후 항상 '/' 또는 '/dashboard' 로만 간다.

검색결과 해결방법이 있었다.

 

1. \App\Providers\JetstreamServiceProvider.php

[code]

    ...    

 

    public function boot()
    {

        $this->configurePermissions();


        Jetstream::deleteUsersUsing(DeleteUser::class);


        // 로그인 뷰에 이전 페이지 url을 session 으로 굽는다

        Fortify::loginView(function () {

            if (session('link')) {

                $myPath = session('link');

                $loginPath = url('/login');

                $previous = url()->previous();


                if ($previous == $loginPath) {

                    session(['link' => $myPath]);

                } else {

                    session(['link' => $previous]);

                }

            } else {

                session(['link' => url()->previous()]);

            }

            return view('auth.login');

        });


        // LoginResponse 바인딩 교체

        $this->app->singleton(

            \Laravel\Fortify\Contracts\LoginResponse::class,

            \App\Http\Responses\LoginResponse::class

        );

    }

 

    ...

[/code]

 

2. \App\Http\Responses\LoginResponse.php

[code]

<?php

namespace App\Http\Responses;


use Illuminate\Support\Facades\Auth;

use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;


class LoginResponse implements LoginResponseContract

{

    public function toResponse($request)

    {

        // 위에서 구은 link 세션으로 이동한다.

        return redirect(session('link'));

    }

}

[/code]

 

 

참고: https://laracasts.com/discuss/channels/laravel/redirect-to-intended-url-jetstream-fortify

댓글 0개

등록된 댓글이 없습니다.

Menu