ホームページ > 記事 > PHPフレームワーク > laravel5.3でログイン機能を実装する方法(プロセス共有)
Laravel は、開発者に多くの実用的な機能と便利な API を提供するオープンソースの PHP Web フレームワークで、開発サイクルを大幅に短縮し、開発コストを削減します。 Laravel 5.3 では、ログイン機能が独立したサービスにカプセル化され、セキュリティとユーザー エクスペリエンスが大幅に向上します。この記事ではLaravel 5.3のログイン手順を紹介します。
Laravel 5.3 では、アプリケーションはログインとログアウトを処理するために認証コントローラーを必要とします。コントローラは、Artisan コマンドを使用して迅速に生成できます。ターミナルに次のコマンドを入力して、認証コントローラーを生成します。
php artisan make:auth
このコマンドは、認証ロジックのカスタマイズに使用できるビュー ファイルとコントローラー ファイルを生成します。
認証機能を実装するには、対応するユーザー モデルが必要です。これは、Artisan コマンドを使用して生成できます。
php artisan make:model User -m
このコマンドは、ユーザー モデル ファイルとデータベース移行ファイルを生成します。ユーザー データ テーブルには「users」という名前を付けることをお勧めします。
デフォルトでは、Laravel 5.3 はユーザーデータテーブルに「電子メール」と「パスワード」の 2 つのフィールドがあることを想定しています。認証に他のフィールドを使用する場合は、ユーザー モデルでこれらのフィールドを定義する必要があります。 app/User.php ファイルを開き、次のコンテンツを追加します。
protected $fillable = [ 'name', 'email', 'password', ];
Laravel 5.3 には、組み込みの bcrypt ハッシュ暗号化アルゴリズムがあり、ハッシュ化できます。パスワードを入力することでセキュリティが強化されます。新しいユーザーを登録するとき、次のコードを使用してパスワードを暗号化できます:
protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); }
Laravel 5.3 はログインページと登録ページのスタイルを提供します。 、直接使用できます。ただし、必要に応じてカスタマイズできます。 resource/views/auth/login.blade.php ファイルに、カスタム HTML および CSS コードを追加し、Laravel の Blade テンプレート エンジンを使用してレンダリングできます。
ログイン機能では、ログイン フォームとフォーム送信を処理するロジックを含む POST ルートを定義する必要があります。 Routes/web.php ファイルに、次のルートを追加します。
Route::post('/login', 'Auth\LoginController@login');
このルートは、認証コントローラーのログイン メソッドを指し、ログイン フォームの POST リクエストを処理します。
Auth コントローラーで、ログイン リクエストを処理するためのログイン メソッドを追加する必要があります。このメソッドは、ユーザーが提供した資格情報を検証し、成功した場合はユーザーをアプリケーションのホームページにリダイレクトします。 Auth コントローラーのログイン メソッドのサンプル コードは次のとおりです。
public function login(Request $request) { $this->validate($request, [ 'email' => 'required|email|max:255', 'password' => 'required|min:6', ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials, $request->has('remember'))) { return redirect()->intended('/home'); } return redirect()->back() ->withInput($request->only('email', 'remember')) ->withErrors([ 'email' => 'These credentials do not match our records.', ]); }
このメソッドでは、リクエストは最初に Laravel のバリデーター クラスを使用して認証されます。検証に合格すると、リクエストから電子メール フィールドとパスワード フィールドが取得されます。これらの資格情報は、Laravel が提供する Auth クラスの試行メソッドを使用して検証されます。検証に合格すると、ユーザーは Laravel のリダイレクト メソッドを使用してアプリケーションのホームページにリダイレクトされます。検証が失敗した場合、ユーザーはエラー メッセージを表示してログイン ページにリダイレクトされます。
Laravel では、ログアウト関数は非常にシンプルで、Auth クラスで logout メソッドを呼び出すだけです:
public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); return redirect('/login'); }
このメソッド Auth::logout メソッドが呼び出され、現在のユーザーをリクエストから切り離し、セッションを無効にします。次に、ユーザーをアプリケーションのログイン ページにリダイレクトします。
概要
Laravel 5.3 では、ログイン機能の実装は非常に簡単で、認証コントローラーの作成、ユーザーモデルの定義、ログインビューの作成、ログインルートとプロセスの定義のみが必要です。ログインリクエスト。 Laravelの強力な機能と便利なAPIを利用して、安全で効率的なログインシステムを簡単に実装できます。
以上がlaravel5.3でログイン機能を実装する方法(プロセス共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。