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.
Jadual pengguna lalai dalam Laravel ialah users
, yang mengandungi medan berikut:
id
: ID Penggunaname
: Nama penggunaemail
: E-melpassword
: Kata Laluanremember_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.
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:
Pertama, kita perlu menukar fail pemindahan pangkalan data bagi jadual users
yang dijana oleh Laravel, menukar email
Medan 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(); });
Seterusnya, kita perlu menukar fail model User
dijana oleh Laravel, menukar email
Field 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; } ... }
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.
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!