ホームページ  >  記事  >  PHPフレームワーク  >  laravel5.3でログイン機能を実装する方法(プロセス共有)

laravel5.3でログイン機能を実装する方法(プロセス共有)

PHPz
PHPzオリジナル
2023-04-03 19:41:16516ブラウズ

Laravel は、開発者に多くの実用的な機能と便利な API を提供するオープンソースの PHP Web フレームワークで、開発サイクルを大幅に短縮し、開発コストを削減します。 Laravel 5.3 では、ログイン機能が独立したサービスにカプセル化され、セキュリティとユーザー エクスペリエンスが大幅に向上します。この記事ではLaravel 5.3のログイン手順を紹介します。

  1. 認証コントローラーの作成

Laravel 5.3 では、アプリケーションはログインとログアウトを処理するために認証コントローラーを必要とします。コントローラは、Artisan コマンドを使用して迅速に生成できます。ターミナルに次のコマンドを入力して、認証コントローラーを生成します。

php artisan make:auth

このコマンドは、認証ロジックのカスタマイズに使用できるビュー ファイルとコントローラー ファイルを生成します。

  1. ユーザー モデルの定義

認証機能を実装するには、対応するユーザー モデルが必要です。これは、Artisan コマンドを使用して生成できます。

php artisan make:model User -m

このコマンドは、ユーザー モデル ファイルとデータベース移行ファイルを生成します。ユーザー データ テーブルには「users」という名前を付けることをお勧めします。

  1. ユーザーモデルの更新

デフォルトでは、Laravel 5.3 はユーザーデータテーブルに「電子メール」と「パスワード」の 2 つのフィールドがあることを想定しています。認証に他のフィールドを使用する場合は、ユーザー モデルでこれらのフィールドを定義する必要があります。 app/User.php ファイルを開き、次のコンテンツを追加します。

protected $fillable = [
   'name', 'email', 'password',
];
  1. 暗号化されたパスワード

Laravel 5.3 には、組み込みの bcrypt ハッシュ暗号化アルゴリズムがあり、ハッシュ化できます。パスワードを入力することでセキュリティが強化されます。新しいユーザーを登録するとき、次のコードを使用してパスワードを暗号化できます:

protected function create(array $data)
{
   return User::create([
      'name'     => $data['name'],
      'email'    => $data['email'],
      'password' => bcrypt($data['password']),
   ]);
}
  1. ログインビューの作成

Laravel 5.3 はログインページと登録ページのスタイルを提供します。 、直接使用できます。ただし、必要に応じてカスタマイズできます。 resource/views/auth/login.blade.php ファイルに、カスタム HTML および CSS コードを追加し、Laravel の Blade テンプレート エンジンを使用してレンダリングできます。

  1. ログイン ルートの定義

ログイン機能では、ログイン フォームとフォーム送信を処理するロジックを含む POST ルートを定義する必要があります。 Routes/web.php ファイルに、次のルートを追加します。

Route::post('/login', 'Auth\LoginController@login');

このルートは、認証コントローラーのログイン メソッドを指し、ログイン フォームの POST リクエストを処理します。

  1. ログイン リクエストの処理

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 のリダイレクト メソッドを使用してアプリケーションのホームページにリダイレクトされます。検証が失敗した場合、ユーザーはエラー メッセージを表示してログイン ページにリダイレクトされます。

  1. ログアウト関数

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 サイトの他の関連記事を参照してください。

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