![](/img/trans.png)
[英]Unable to authenticate a user in Laravel: 'invalid username or password'
[英]Laravel 5.1 - Authenticate Username, Password AND if confirmed = 1
把頭發拉出來似乎是一項簡單的任務。 我使用以下代碼在我的AuthController
使用username
而不是email
:
/**
* Set the login system to use username instead of email address
* @var string
*/
protected $username = 'username';
這已經很好地工作了很長時間(當我沒有計划用戶激活他們的帳戶時)。 但是,現在我需要用戶激活他們的帳戶,我知道我需要在他們看到他們的儀表板之前對登錄進行額外的檢查。
我修改了下面的postLogin()
方法,我認為是正確的:
public function postLogin(Request $request)
{
$this->validate($request, [
'username' => 'required', 'password' => 'required',
]);
$credentials = $request->only('username', 'password');
$credentials = array_add($credentials, 'confirmed', '1');
if ($this->auth->attempt($credentials, $request->has('remember')))
{
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('username', 'remember'))
->withErrors([
'username' => $this->getFailedLoginMessage(),
]);
}
但我得到的是以下錯誤:
Undefined property: App\\Http\\Controllers\\Auth\\AuthController::$auth
我做錯了什么?
安迪
我看到的只是一個小故障。
if ($this->auth->attempt($credentials, $request->has('remember')))
應該
if (Auth::attempt($credentials, $request->has('remember')))
在Laravel 5.1中,AuthController類構造函數中不存在$ auth屬性,如5.1升級指南中所述 。 所以你引用了一個不存在的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.