Laravel 默認(rèn)郵箱登錄改成用戶名登錄的實(shí)現(xiàn)方法
Laravel中默認(rèn)的登錄是通過郵箱和密碼進(jìn)行登錄的。那么,怎么樣才能用最少的改動將它改成用密碼登錄呢?
默認(rèn)的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers 這個trait完成登錄功能的。通過觀察 AuthenticatesUsers 的代碼,發(fā)現(xiàn)下面一段很有意思的代碼:
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
public function username()
{
return 'email';
}
可以看到,是 因 為trait里定義了用戶名就是email,所以才會使得驗(yàn)證的時候通過用戶郵箱驗(yàn)證。 所以我們只需要定義一個trait,覆蓋 AuthenticatesUsers 中的 username() 方法即可實(shí)現(xiàn)后端代碼通過用戶名驗(yàn)證登錄。
新增的trait代碼
namespace App\Utils;
use Illuminate\Foundation\Auth\AuthenticatesUsers as LaravelAuthenticatesUsers;
trait AuthenticatesUsers {
use LaravelAuthenticatesUsers;
public function username()
{
return 'name';
}
}
其實(shí)還有另一個簡單的修改方式,直接在LoginController中新增 username() 方法。由于當(dāng)前定義方法會覆蓋trait的方法,因此也能達(dá)到修改的目的。但是會破壞登錄代碼的整體一致性,所以最好還是通過新增trait的方式實(shí)現(xiàn)。
同時要記得修改前端blade文件中對輸入?yún)?shù)的驗(yàn)證,然后就可以使用用戶名登錄了

總結(jié)
以上所述是小編給大家介紹的Laravel 默認(rèn)郵箱登錄改成用戶名登錄的實(shí)現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- laravel5.4利用163郵箱發(fā)送郵件的步驟詳解
- 在Laravel框架里實(shí)現(xiàn)發(fā)送郵件實(shí)例(郵箱驗(yàn)證)
- Laravel 5框架學(xué)習(xí)之用戶認(rèn)證
- 詳解Laravel5.6 Passport實(shí)現(xiàn)Api接口認(rèn)證
- Laravel5.5中利用Passport實(shí)現(xiàn)Auth認(rèn)證的方法
- Laravel實(shí)現(xiàn)用戶多字段認(rèn)證的解決方法
- Laravel認(rèn)證原理以及完全自定義認(rèn)證詳解
- Laravel多用戶認(rèn)證系統(tǒng)示例詳解
- 解決Laravel5.2 Auth認(rèn)證退出失效的問題
- laravel實(shí)現(xiàn)Auth認(rèn)證,登錄、注冊后的頁面回跳方法
- laravel框架郵箱認(rèn)證實(shí)現(xiàn)方法詳解
相關(guān)文章
PHP簡單實(shí)現(xiàn)HTTP和HTTPS跨域共享session解決辦法
這篇文章主要介紹了PHP簡單實(shí)現(xiàn)HTTP和HTTPS跨域共享session解決辦法,本文講解的方法相對簡單,需要的朋友可以參考下2015-05-05
thinkPHP5.0框架引入Traits功能實(shí)例分析
這篇文章主要介紹了thinkPHP5.0框架引入Traits功能,結(jié)合實(shí)例形式分析了Traits的概念、功能及thinkPHP5.0中Traits功能的使用方法,需要的朋友可以參考下2017-03-03
php中計(jì)算未知長度的字符串哪個字符出現(xiàn)的次數(shù)最多的代碼
php中計(jì)算未知長度的字符串哪個字符出現(xiàn)的次數(shù)最多的代碼,需要的朋友可以參考下2012-08-08

