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

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

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤