Laravel のログインページの URL を変更する
Update: 2019-01-01
Laravel で作成中のサイトにログイン方法を選択するページを追加して、 そのページが最初に表示されるようにしようと思ったのですが、 そのあたりはフレームワークが提供する機能で設定されていて、 どこを変えたらいいのかよくわかりません。 とはいえ、同じことを考える人はいるだろうとぐぐってみたらいました。
やり方としては2通りあります。どちらもこのページに出ています。
Route を個別に定義する
フレームワークが用意しているルートは routes/web.php
の Auth::routes();
で一括で指定しているのですが、これを消して
Route::get('`myNewLoginPageYay/', 'Auth\LoginController@showLoginForm')->name('login');
のように個別に定義すればよいとのことです。
私が作成中ものはクローズドな会員向けのサイトなので、
Auth::routes();
だと不要なルートが設定されていますから、
ついでにいらないものを決しておくことにします。
Route::get(
'login/password',
'Auth\LoginController@showLoginForm'
)->name('login');
Route::post(
'login/password',
'Auth\LoginController@login'
);
Route::post(
'logout',
'Auth\LoginController@logout'
)->name('logout');
Route::get(
'password/reset',
'Auth\ForgotPasswordController@showLinkRequestForm'
)->name('password.request');
Route::post(
'password/email',
'Auth\ForgotPasswordController@sendResetLinkEmail'
)->name('password.email');
Route::get(
'password/reset/{token}',
'Auth\ResetPasswordController@showResetForm'
)->name('password.reset');
Route::post(
'password/reset',
'Auth\ResetPasswordController@reset'
)->name('password.update');
認証前のリダイレクト先を変える
app/Exceptions/Handler.php
に
public function unauthenticated($request, AuthenticationException $exception)
{
return redirect()->guest(route('name'));
}
のようなコードを追加すると AuthenticationException
を拾ってくれるそうです。
Tag: Laravel