ホームページ > 記事 > PHPフレームワーク > laravelフレームワークのログイン登録プロセス
Laravel フレームワークは、PHP 言語をベースとした優れた人気のある Web アプリケーション開発フレームワークです。 Laravel フレームワークには、非常に完全なユーザー ログインおよび登録システムがあり、この登録およびログイン システムは、ユーザーの基本的な認証機能を実装でき、ユーザー権利管理、パスワード リセット、電子メール検証、ユーザーに対する一連の承認操作を実行できます。など。次の記事では、Laravel フレームワークのログインと登録のプロセスについて詳しく説明します。
まず、ユーザーの基本情報を保存するユーザー テーブルを作成する必要があります。このモデルは、Laravel が提供する「make:model」コマンドを使用して作成できます。ターミナルに次のコマンドを入力します:
php artisan make:model User -m
このコマンドは、app
ディレクトリに User
モデルを生成し、データベースに users# を生成します。 #表面。
User モデルでは、ユーザーが使用する認証方法を指定する必要があります。 Laravel フレームワークは、モデルの
guard 属性で設定できるさまざまなユーザー認証方法を提供します。
protected $guard = 'web';ユーザー モデルを作成した後、表示する別のモデルを作成する必要があります。ユーザー ページのコントローラーを登録するには、次のコマンドを使用してコントローラーを作成します。
php artisan make:controller AuthRegisterController --resourceこのコマンドを実行すると、Laravel フレームワークは
appHttpControllersAuth# に という名前のファイルを作成します。 ## ディレクトリ。RegisterController.php
ファイル。このコントローラーでは、次のメソッドを実装する必要があります: <pre class='brush:php;toolbar:false;'>use AppUser;
use IlluminateFoundationAuthRegistersUsers;
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return redirect($this->redirectTo);
}
// 验证用户输入的数据
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
// 保存注册用户信息到数据库
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}</pre>
次に、このコントローラーのルートを
に追加する必要があります: <pre class='brush:php;toolbar:false;'>Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('register', 'AuthRegisterController@register');</pre>
フロント ページでは、次のフォームを使用してユーザー データを収集します。
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">用户名</label> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <label for="password-confirm">确认密码</label> <input id="password-confirm" type="password" name="password_confirmation" required> </div> <div> <button type="submit">注册</button> </div> </form>
これで、ユーザー登録プロセスが正常に作成されました。
ユーザーログインプロセス に追加します: <pre class='brush:php;toolbar:false;'>Route::get('login', 'AuthLoginController@showLoginForm')->name('login');
Route::post('login', 'AuthLoginController@login');
Route::post('logout', 'AuthLoginController@logout')->name('logout');</pre>
次に、
モデルに対応する LoginController
コントローラーを作成します。コントローラーでは、次のメソッドを実装する必要があります: <pre class='brush:php;toolbar:false;'>use IlluminateFoundationAuthAuthenticatesUsers;
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
return $this->sendFailedLoginResponse($request);
}
// 认证用户名和密码
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
// 获取用户名和密码
protected function credentials(Request $request)
{
return $request->only($this->username(), 'password');
}
public function username()
{
return 'email';
}
// 用户退出登录方法
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/');
}</pre>
次に、ユーザー ログイン ビューを作成する必要があります。ビューでは、次のフォームを使用してユーザー データを受信します。
<form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label for="remember">记住我</label> </div> <div> <button type="submit">登录</button> </div> </form>
上記のビューとコントローラーを作成した後、Laravel フレームワークのユーザー ログインと登録プロセスを実装しました。注意する必要があるのは、ユーザーが正常にログインした後、後続の関数呼び出しを容易にするためにユーザー情報をセッションに保存する必要があるということです。コントローラーの 2 番目のメソッドでは、Laravel フレームワークが提供する
attemptLogin メソッドを使用してユーザーのログイン情報を検証できます。検証に合格すると、ユーザー情報はセッションとユーザーに保存されます。子 URL にリダイレクトされます。 要約すると、Laravel フレームワークのユーザー ログインと登録のプロセスは非常にシンプルで理解しやすく、上記の手順でユーザー ログインと登録の機能を実装するには、数行の簡単なコードのみが必要です。もちろん、ユーザーがより高度な認証と権限管理を必要とする場合は、Laravel フレームワークの拡張性を利用して、上記のモデルとコントローラーに基づいたカスタム メソッドを追加することもできます。
以上がlaravelフレームワークのログイン登録プロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。