我的使用者表結構和laravel框架中的使用者驗證所建立的表結構不一樣,例如laravel中的預設是通email登入的,而我的使用者表壓根就沒有email字段,這個還可以透過laravel的auth這個東西來實作使用者驗證碼?
是不是如果表格結構和laravel中的不一樣就不能用它自帶的auth來驗證了呢?
淡淡烟草味2017-05-16 16:52:30
包含驗證所使用的user表(Models/User.php)的table,
驗證所讀取的使用者id欄位(username/email)
讀取的密碼欄位(password)
乃至於驗證方法(bcrypt)都是可以自己客製的。
如果你是用5.1LTS的版本,可以先去看認證這一章節的文檔
另外看一下你AuthController和UserModel裡所預設使用的Trait
User(Model)裡的Trait:Authenticatable
AuthController(Controller)裡的Trait:AuthenticatesAndRegistersUsers(下的AuthenticatesUsers)
中間的實現的方法都是你可以在對應的Model和Controller裡自己定制覆蓋的
比如你所要求的用戶名不一樣,就可以透過覆蓋loginUsername方法搞定:
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function loginUsername()
{
return property_exists($this, 'username') ? $this->username : 'email';
}
多看文檔,多讀源碼。