はじめに
https://note.com/akina7/n/naa77c7020363
上記の優秀な記事の通りに実装しても上手く行かなくて詰まったので、備忘録としてログイン後にマイページにリダイレクトさせる方法をまとめておきます
前提
開発環境
- laravel 6系
パス
web.php
Auth::routes();
Route::get('/', 'HomeController@index')->name('home');
Route::get("login/{provider}", "Auth\LoginController@redirectToProvider")->name('login.{provider}');
Route::get('login/{provider}/callback', 'Auth\LoginController@handleProviderCallback');
Route::resource('/locations', 'LocationController', ['except' => ['index']])->middleware("auth");
Route::prefix('users')->name('users.')->group(function () {
Route::get('/{name}', 'UserController@show')->name('show');
});
login.php
protected $redirectTo = RouteServiceProvider::HOME;
【結論】ログイン後にマイページにリダイレクトさせる方法
login.php
public function redirectTo()
{
if (!Auth::user()) {
return '/';
}
return
route('users.show', ['name' => Auth::user()->name]);
}
protected function authenticated($request, $user)
{
return redirect(route("users.show", ["name" => Auth::user()->name]));
}
少し粗手ですが、、、、
ポイントは、 authenticated()を使って、認証後にやりたい処理を書くことで、リダイレクト先を変更していること!