ホームページ  >  記事  >  PHPフレームワーク  >  laravelフレームワークのログイン登録プロセス

laravelフレームワークのログイン登録プロセス

WBOY
WBOYオリジナル
2023-05-29 09:58:07985ブラウズ

Laravel フレームワークは、PHP 言語をベースとした優れた人気のある Web アプリケーション開発フレームワークです。 Laravel フレームワークには、非常に完全なユーザー ログインおよび登録システムがあり、この登録およびログイン システムは、ユーザーの基本的な認証機能を実装でき、ユーザー権利管理、パスワード リセット、電子メール検証、ユーザーに対する一連の承認操作を実行できます。など。次の記事では、Laravel フレームワークのログインと登録のプロセスについて詳しく説明します。

  1. ユーザー登録プロセス

まず、ユーザーの基本情報を保存するユーザー テーブルを作成する必要があります。このモデルは、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-&gt;validator($request-&gt;all())-&gt;validate(); event(new Registered($user = $this-&gt;create($request-&gt;all()))); $this-&gt;guard()-&gt;login($user); return redirect($this-&gt;redirectTo); } // 验证用户输入的数据 protected function validator(array $data) { return Validator::make($data, [ 'name' =&gt; ['required', 'string', 'max:255'], 'email' =&gt; ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' =&gt; ['required', 'string', 'min:8', 'confirmed'], ]); } // 保存注册用户信息到数据库 protected function create(array $data) { return User::create([ 'name' =&gt; $data['name'], 'email' =&gt; $data['email'], 'password' =&gt; Hash::make($data['password']), ]); }</pre> 次に、このコントローラーのルートを

routes/web.php

に追加する必要があります: <pre class='brush:php;toolbar:false;'>Route::get('register', 'AuthRegisterController@showRegistrationForm')-&gt;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>

これで、ユーザー登録プロセスが正常に作成されました。

ユーザーログインプロセス
  1. Laravel は非常に高速なユーザーログインメソッドを提供しており、このメソッドを使用してログインできます。次のルートを
routes/web.php

に追加します: <pre class='brush:php;toolbar:false;'>Route::get('login', 'AuthLoginController@showLoginForm')-&gt;name('login'); Route::post('login', 'AuthLoginController@login'); Route::post('logout', 'AuthLoginController@logout')-&gt;name('logout');</pre> 次に、

User

モデルに対応する LoginController コントローラーを作成します。コントローラーでは、次のメソッドを実装する必要があります: <pre class='brush:php;toolbar:false;'>use IlluminateFoundationAuthAuthenticatesUsers; public function login(Request $request) { $this-&gt;validateLogin($request); if ($this-&gt;attemptLogin($request)) { return $this-&gt;sendLoginResponse($request); } return $this-&gt;sendFailedLoginResponse($request); } // 认证用户名和密码 protected function attemptLogin(Request $request) { return $this-&gt;guard()-&gt;attempt( $this-&gt;credentials($request), $request-&gt;filled('remember') ); } // 获取用户名和密码 protected function credentials(Request $request) { return $request-&gt;only($this-&gt;username(), 'password'); } public function username() { return 'email'; } // 用户退出登录方法 public function logout(Request $request) { $this-&gt;guard()-&gt;logout(); $request-&gt;session()-&gt;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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。