2016-10-01 147 views
0

我的網站需要一個用戶帳戶,通過發送給他們的電子郵件鏈接來激活,然後他們才能真正登錄,但guard()attempt()方法似乎只要用戶簽名有一場比賽。我如何檢查沒有登錄,所以我可以驗證用戶>驗證他們的帳戶是活動>開始用戶會話?當前代碼如下Laravel登錄嘗試先決條件

if ($this->guard()->attempt($credentials, $request->has('remember'))) { 
     // Return response if user match found 
     return $this->checkAccountActive($credentials); 
} 
+0

告訴我您的電子郵件鏈接 – Komal

回答

0

您是否使用AuthController?

如果你這樣做,你可以調整getCredentials(顯示)方法,以滿足您的業務需求,例如,如果你需要確認的電子郵件和狀態活躍,你可以這樣做以下:

protected function getCredentials($request) 
{ 
    return array_merge($request->only(['email', 'password']), ['active' => 1]); 
} 
+0

我正在使用Laravel 5.3附帶的AuthenticatesUsers triat。我使用用戶名,密碼和名爲「active」的布爾值登錄。上述方法仍然有效嗎? –

+0

在app/Http/Controllers/Auth中查找AuthController.php,並將getCredentials()方法替換爲上述方法。 –

+1

你的方法沒有工作,但我使用「$ request-> merge(array('active'=>'1'));」代替 –