2015-09-02 105 views
0

我想在laravel創建登錄每次我得到這個錯誤These credentials do not match our records。我的代碼是這樣的5.But:登錄問題5

路線頁:

Route::get('auth/login', 'Auth\[email protected]'); 
Route::post('auth/login', 'Auth\[email protected]'); 
Route::get('auth/logout', 'Auth\[email protected]'); 

// Registration routes... 
Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 

位指示:

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 

class AuthController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Registration & Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users, as well as the 
    | authentication of existing users. By default, this controller uses 
    | a simple trait to add these behaviors. Why don't you explore it? 
    | 
    */ 

    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'getLogout']); 
    } 

    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|confirmed|min:6', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 

    /** 
    * Show the application login form. 
    * 
    * @return Response 
    */ 
    public function getLogin() 
    { 
     return view('auth.login'); 
    } 

    /** 
    * Handle a login request to the application. 
    * 
    * @param LoginRequest $request 
    * @return Response 
    */ 
    public function postLogin(LoginRequest $request) 
    { 

     if (Auth::attempt(['email' => $email, 'password' => $password])) 
     { 
      return redirect('/dash-board'); 
     } 

     return redirect('/login')->withErrors([ 
      'email' => 'The credentials you entered did not match our records. Try again?', 
     ]); 
    } 

} 

而且我認爲表單操作是這樣的:

<form accept-charset="UTF-8" action="http://bucketspms-plumnetworks.c9.io/auth/login" method="POST"> 

我是Laravel的新手,很混淆爲什麼它不允許我登錄。

+0

我假設你能夠成功地向該用戶註冊該密碼? – Amarnasan

+0

不,我用表命令創建表然後插入手動條目。但我用laravel的哈希方法創建密碼。 –

回答

0

您正在使用$ email和$密碼,但這些變量都沒有設置,你應該使用這個$請求 - >輸入(「電子郵件」)和$請求 - >輸入(「密碼」)功能

public function postLogin(LoginRequest $request) 
{ 

    if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')])) 
    { 
     return redirect('/dash-board'); 
    } 

    return redirect('/login')->withErrors([ 
     'email' => 'The credentials you entered did not match our records. Try again?', 
    ]); 
} 
+0

當您創建用戶時,您應該使用Hash :: make('your-password')作爲密碼字段。 Auth ::嘗試在數據庫中查找散列密碼。 – Iamzozo

+0

太棒了,謝謝。 –