Rumah >rangka kerja php >Laravel >Bagaimana untuk menukar medan pengesahan pengguna dalam Laravel

Bagaimana untuk menukar medan pengesahan pengguna dalam Laravel

PHPz
PHPzasal
2023-04-03 19:41:18722semak imbas

Laravel ialah salah satu rangka kerja PHP yang paling popular hari ini Disebabkan ciri-cirinya yang sangat baik, ia digunakan secara meluas dalam pembangunan aplikasi web. Antaranya, pengesahan pengguna adalah salah satu ciri yang paling biasa digunakan dalam aplikasi Laravel. Laravel menyediakan sistem pengesahan pengguna yang sangat lengkap yang boleh melaksanakan log masuk, pendaftaran dan fungsi lain dengan mudah. Tetapi kadangkala, kita perlu menukar medan pengesahan lalai Artikel ini akan memperkenalkan cara menukar medan pengesahan pengguna dalam Laravel.

Medan pengesahan pengguna lalai Laravel

Jadual pengguna lalai dalam Laravel ialah users, yang mengandungi medan berikut:

  • id: ID Pengguna
  • name: Nama pengguna
  • email: E-mel
  • password: Kata Laluan
  • remember_token: Ingat token kata laluan

Antaranya, email dan password ialah medan pengesahan pengguna yang digunakan oleh Laravel secara lalai. Semasa proses log masuk dan pendaftaran, Laravel menggunakan kedua-dua medan ini untuk pengesahan.

Tukar medan pengesahan pengguna lalai

Kadangkala, kita perlu menukar medan pengesahan pengguna lalai kepada medan lain, seperti menggunakan medan username sebagai medan pengesahan. Dalam Laravel, kita perlu membuat perubahan pada tempat berikut:

Tukar fail pemindahan pangkalan data

Pertama, kita perlu menukar fail pemindahan pangkalan data bagi jadual users yang dijana oleh Laravel, menukar emailMedan ditukar kepada medan username, seperti fail pemindahan berikut:

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('username')->unique();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
});

Tukar fail model

Seterusnya, kita perlu menukar fail model User dijana oleh Laravel, menukar emailField ditukar kepada username medan:

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;
    }
    
    ...
}

Tukar pengawal log masuk

Akhir sekali, kita perlu menukar pengawal log masuk untuk menggunakan medan username untuk pengesahan. Dalam Laravel, pengawal log masuk lalai kepada app/Http/Controllers/Auth/LoginController.php. Kami perlu menambah kod berikut pada fail:

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';
    }
    
    ...
}

Pada ketika ini, kami telah menyelesaikan semua operasi menggunakan medan username sebagai medan pengesahan. Apabila pengguna log masuk atau mendaftar, Laravel menggunakan medan username untuk pengesahan.

Ringkasan

Medan pengesahan pengguna yang digunakan oleh Laravel secara lalai ialah email dan password Walau bagaimanapun, kadangkala kita perlu menukar medan pengesahan lalai kepada medan lain. Artikel ini menerangkan cara menukar medan pengesahan pengguna kepada medan username. Dengan membuat perubahan pada fail pemindahan pangkalan data, fail model dan pengawal, kami berjaya melaksanakan medan username sebagai medan pengesahan. Tindakan ini bukan sahaja membantu kami memenuhi keperluan perniagaan khas, tetapi juga meningkatkan pengalaman pengguna menggunakan aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk menukar medan pengesahan pengguna dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn