2016-11-05 153 views
1

我在我的AuthController中有這樣的登錄代碼。如何在laravel中驗證登錄5.3

 public function login(Request $request){ 
    $email = $request->input('email'); 
    $password = $request->input('password'); 
    $validation = array(
    'email' =>'required', 
    'password' => 'required'); 
    $validator = Validator::make($request->all(), $validation); 
    if ($validator->fails()) { 
     $messages = $validator->messages(); 
     return redirect('login_with_assismo') 
        ->withErrors($validator) 
        ->withInput(Input::except('password')); 
    } else { 
     if (auth()->authenticate()) { 
     return redirect()->intended('welcome'); 
    } 
} 
} 

當我使用這是我認爲的登錄執行,但它重定向我的頁面somthng這樣 本地主機:8000 /登錄

任何人幫助我如何驗證登錄我做錯了什麼或什麼。請爲此獲取解決方案。

回答

1

可以使用attempt()功能登錄用戶爲:

public function login(Request $request) 
{ 
    $inputs = $request->only('email', 'password'); 

    $rules = array(
     'email' =>'required', 
     'password' => 'required' 
    ); 

    $validator = Validator::make($inputs, $rules); 

    if ($validator->fails()) { 
     $messages = $validator->messages(); 
     return redirect('login_with_assismo') 
        ->withErrors($validator) 
        ->withInput($request->except('password')); 
    } 

    if (auth()->attempt($inputs)) { 
     return redirect()->intended('welcome'); 
    } 

    return redirect()->back()->withInput(); 
} 
+0

爲localhost替換這條路線:8000 /首頁 這是找不到頁面。 –

+0

而我的密碼是加密形式的 –

+0

你不必擔心密碼,因爲Laravel的'attempt()'函數會自動爲你做。另外,我已經更新了答案,請使用它。而對於你面臨的問題,你需要手動檢查它使用'dd()'重定向到哪一行。我會建議你徹底閱讀文件。 –

0

不要恐慌兄弟,因爲它的Auth中間件去@amit's代碼只是去

App\Http\Middleware\RedirectIfAuthenticated

,並與您的

if (Auth::guard($guard)->check()) { return redirect('/home'); }

之後,你是好,當我使用這個代碼,它重定向我去