搜尋

首頁  >  問答  >  主體

如果自己的使用者表結構和laravel自帶的auth的使用者表結構不一樣,怎麼進行使用者驗證?

我的使用者表結構和laravel框架中的使用者驗證所建立的表結構不一樣,例如laravel中的預設是通email登入的,而我的使用者表壓根就沒有email字段,這個還可以透過laravel的auth這個東西來實作使用者驗證碼?

是不是如果表格結構和laravel中的不一樣就不能用它自帶的auth來驗證了呢?

PHP中文网PHP中文网2750 天前706

全部回覆(1)我來回復

  • 淡淡烟草味

    淡淡烟草味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';
    }

    多看文檔,多讀源碼。

    回覆
    0
  • 取消回覆