我喜歡用戶通過公司名稱,用戶名和密碼登錄 - 他們需要輸入所有這些字段。Laravel Auth按公司名稱,用戶名和密碼登錄
username
和password
字段在users
表中。 company_name
在companies
表中。
username
可以在users
表中複製,但每個用戶名屬於不同的公司名稱。 company_id
在users
表中定義。
如何對公司名稱,用戶名和密碼進行驗證?
我看了一下attemptLogin()
方法。
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->has('remember')
);
}
我不能覆蓋這個,因爲我需要通過屬於公司的特定用戶,然後進行身份驗證檢查。
更新:
protected function authenticated(Request $request, User $user)
{
if (!$user->enable) {
Auth::logout();
return redirect('/login')->with('status', 'Account is disabled');
}
return redirect()->intended('/');
}
我忘了在用戶表中提到它可以是company_id或warehouse_id。如果company_id爲空,那麼檢查warehouse_id對'warehouses'表,它也有'company_name' –
如果你希望它很好,乾淨,請自行警惕並關注'attempt()'方法。 – Kyslik
@ I'll-Be-Back您正在貪婪...... – Kyslik