Laravel は現在最も人気のある PHP フレームワークの 1 つであり、その優れた機能により Web アプリケーションの開発に広く使用されています。その中でも、ユーザー認証はLaravelアプリケーションで最もよく使用される機能の1つです。 Laravel は、ログイン、登録、その他の機能を簡単に実装できる非常に完全なユーザー認証システムを提供します。ただし、場合によってはデフォルトの認証フィールドを変更する必要があるため、この記事ではLaravelのユーザー認証フィールドを変更する方法を紹介します。
Laravel のデフォルトのユーザーテーブルは users
で、これには次のフィールドが含まれます:
id
: ユーザーIDname
: ユーザー名email
: 電子メールパスワード
: Passwordremember_token
: パスワードトークンを覚えてくださいこのうち、email
と password
は Laravel のデフォルトのユーザーです使用する認証フィールド。ログインおよび登録プロセス中に、Laravel は認証にこれら 2 つのフィールドを使用します。
場合によっては、username
フィールドを認証フィールドとして使用するなど、デフォルトのユーザー認証フィールドを他のフィールドに変更する必要があります。 Laravel では、次の場所を変更する必要があります:
まず、users
テーブルのデータベース移行ファイルを変更する必要があります。 Laravel によって生成されたファイルを取得するには、 email
フィールドを username
フィールド (次の移行ファイルのように) に変更します。
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('username')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); });
次に、 Laravel 世代の User
モデル ファイルを変更する必要があります。email
フィールドを username
フィールドに変更します。
use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { ... /** * Get the email address used for authentication. * * @return string */ public function getEmailForAuthenticatioo() { return $this->username; } ... }
最後に、認証に username
フィールドを使用するようにログイン コントローラーを変更する必要があります。 Laravel では、ログイン コントローラーのデフォルトは app/Http/Controllers/Auth/LoginController.php
です。次のコードをファイルに追加する必要があります:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class LoginController extends Controller { ... /** * Get the login username to be used by the controller. * * @return string */ public function username() { return 'username'; } ... }
この時点で、username
フィールドを認証フィールドとして使用するすべての操作が完了しました。ユーザーがログインまたは登録すると、Laravel は認証に username
フィールドを使用します。
Laravel がデフォルトで使用するユーザー認証フィールドは email
と password
ですが、デフォルトの認証フィールドを変更する必要がある場合があります。他の分野へ。この記事では、ユーザー認証フィールドを username
フィールドに変更する方法について説明します。データベース移行ファイル、モデル ファイル、およびコントローラーに変更を加えることで、username
フィールドを認証フィールドとして正常に実装しました。このアクションは、特別なビジネス ニーズを満たすだけでなく、アプリケーションを使用するユーザー エクスペリエンスも向上します。
以上がLaravelでユーザー認証フィールドを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。