未ログインからログイン
一般的なログイン処理、ログインしていない状態でログイン画面よりログインを行った場合のリダイレクト先指定
LoginController.phpで「$redirectTo」に指定
app\Http\Controllers\Auth\LoginController.php
class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/home'; // ↑ ここを変更
ログイン済み状態からログイン画面
通常ログイン済みの状態で、再度ログイン画面にアクセスした際、すでにログイン処理済みなので、ログイン後のリダイレクト先へ遷移すれば問題ないが、マルチ認証を採用している際や、未ログインからログイン後のリダイレクト先を変更している場合のリダイレクト先指定
RedirectIfAuthenticatedのhandleでリダイレクト先を指定
app\meetingnavi\app\Http\Middleware\RedirectIfAuthenticated.php
class RedirectIfAuthenticated { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect('/home'); // ↑ここを変更 } return $next($request); } }
マルチ認証を採用している場合、guard名で分岐させ指定
class RedirectIfAuthenticated { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { if(strcmp($guard, 'admin') == 0 ){ return redirect('/admin/home'); } return redirect('/home'); } return $next($request); } }