Laravelでユーザー認証フィールドを変更する方法

PHPz
リリース: 2023-04-03 19:53:23
オリジナル
673 人が閲覧しました

Laravel は現在最も人気のある PHP フレームワークの 1 つであり、その優れた機能により Web アプリケーションの開発に広く使用されています。その中でも、ユーザー認証はLaravelアプリケーションで最もよく使用される機能の1つです。 Laravel は、ログイン、登録、その他の機能を簡単に実装できる非常に完全なユーザー認証システムを提供します。ただし、場合によってはデフォルトの認証フィールドを変更する必要があるため、この記事ではLaravelのユーザー認証フィールドを変更する方法を紹介します。

Laravel のデフォルトのユーザー認証フィールド

Laravel のデフォルトのユーザーテーブルは users で、これには次のフィールドが含まれます:

  • id : ユーザーID
  • name: ユーザー名
  • email: 電子メール
  • パスワード : Password
  • remember_token: パスワードトークンを覚えてください

このうち、emailpassword は 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();
});
ログイン後にコピー

Change model file

次に、 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;
    }
    
    ...
}
ログイン後にコピー

Change Login Controller

最後に、認証に 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 がデフォルトで使用するユーザー認証フィールドは emailpassword ですが、デフォルトの認証フィールドを変更する必要がある場合があります。他の分野へ。この記事では、ユーザー認証フィールドを username フィールドに変更する方法について説明します。データベース移行ファイル、モデル ファイル、およびコントローラーに変更を加えることで、username フィールドを認証フィールドとして正常に実装しました。このアクションは、特別なビジネス ニーズを満たすだけでなく、アプリケーションを使用するユーザー エクスペリエンスも向上します。

以上がLaravelでユーザー認証フィールドを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート