- ルートの設定: まず、routes/web.phpファイルを開き、ログイン用のルートを設定します。以下のように設定します。
Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
- コントローラの作成: 次に、ログインに関連するロジックを持つコントローラを作成します。以下のコマンドを使用して、コントローラを生成します。
php artisan make:controller Auth\LoginController
生成されたコントローラは、app/Http/Controllers/Auth/LoginController.phpに配置されます。
- コントローラの実装: LoginControllerの中身を以下のように編集します。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$credentials = $request->only('id', 'password');
if (Auth::attempt($credentials)) {
// ログイン成功時の処理
return redirect()->intended('/dashboard');
} else {
// ログイン失敗時の処理
return back()->withErrors(['id' => '認証に失敗しました']);
}
}
}
- ビューの作成: ログインフォームを表示するためのビューを作成します。resources/views/auth/login.blade.phpを作成し、以下のように編集します。
<form method="POST" action="{{ route('login') }}">
@csrf
<div>
<label for="id">ID</label>
<input id="id" type="text" name="id" required autofocus>
</div>
<div>
<label for="password">パスワード</label>
<input id="password" type="password" name="password" required>
</div>
<div>
<button type="submit">ログイン</button>
</div>
</form>
- ログイン後のリダイレクト先の設定:
ログイン後にリダイレクトする先を指定する必要があります。app/Http/Controllers/Auth/LoginController.phpの
redirect()->intended('/dashboard')
となっている部分を適宜変更してください。
以上で、IDを使用したログインの実装が完了しました。これにより、ユーザーは入力したIDとパスワードを使用してログインすることができます。
注意事項: 安全性の観点から、パスワードはハッシュ化して保存する必要があります。Laravelのデフォルトのユーザーテーブルを使用している場合は、パスワードのハッシュ化は自動的に行われます。