2017-02-28 164 views
0

使用laravel重建我的系統5.4。 我做了一個可以工作的ajax登錄,但是我想將記住選項添加到auth。 文檔說這有關設置記住:設置在ajax上記住laravel登錄

if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { 
    // The user is being remembered... 
} 

但因爲我的LoginController沒有任何可見的登錄功能,我對如何與我目前的LoginController覆蓋它掙扎。 在我的路線我只是調用LoginController @登錄。和我有被稱爲在登錄功能沒有覆蓋..

這是我的LoginController:

namespace App\Http\Controllers\Auth; 
use App\Http\Controllers\Controller; 

use Illuminate\Foundation\Auth\AuthenticatesUsers; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Lang; 
class LoginController extends Controller 
{ 

    use AuthenticatesUsers; 
    protected $redirectTo = '/minside'; 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'logout']); 
    } 
    protected function sendLoginResponse(Request $request) 
    { 
     $request->session()->regenerate(); 
     $this->clearLoginAttempts($request); 
     if ($request->ajax()) { 
      error_log($this->guard()->user(),'0'); 
      return response()->json($this->guard()->user(), 200); 
     } 
     return $this->authenticated($request, $this->guard()->user()) 
      ?: redirect()->intended($this->redirectPath()); 
    } 
    protected function sendFailedLoginResponse(Request $request) 
    { 
     if ($request->ajax()) { 
      return response()->json([ 
       'error' => Lang::get('auth.failed') 
      ], 401); 
     } 
     return redirect()->back() 
      ->withInput($request->only($this->username(), 'remember')) 
      ->withErrors([ 
       $this->username() => Lang::get('auth.failed'), 
      ]); 
    } 
} 

回答

1

當使用Laravel提供的LoginController類,它這樣做的檢查:

protected function attemptLogin(Request $request) 
{ 
    return $this->guard()->attempt(
     $this->credentials($request), $request->has('remember') 
    ); 
} 

只需將「remember」添加到您的請求中,即可記住用戶的登錄信息。

+0

謝謝,但我的登錄控制器會去哪裏?我不知道我在哪裏實際上在做這個驗證 – Havihavi

+0

我添加了一個remember_me到我的表單,它做了我想要的,但我希望能更多地控制我的登錄控制器。 – Havihavi

+1

LoginController使用具有tryLogin功能的特徵AuthenticatesUsers。如果你想有更多的控制權,你可以重寫函數,創建你自己的特質,或者創建你自己的控制器;) – reinierkors