Laravel 5.1用户登录不工作


Laravel 5.1 user login not working

我有一个注册表单,它可以注册和登录用户。我在受保护路由的控制器中使用$this->middleware('auth');来提示用户登录。登录表单将POST请求传递给Laravel的AuthController(用户名和密码:

)
 <input type="hidden" name="_token" value="XXXXXXXXXX">
    <div class="widget-content">
        <input type="text" placeholder="Username" name="username">
        <input type="password" placeholder="Password" name="password">
        <input class="btn btn-blue pull-right" type="submit" />
    </div>
</form>

路线:

//authentication routes
Route::get('auth/login', 'Auth'AuthController@getLogin');
Route::post('auth/login', 'Auth'AuthController@postLogin');
Route::get('auth/logout', 'Auth'AuthController@getLogout');
// Registration routes...
Route::get('auth/register', 'Auth'AuthController@getRegister');
Route::post('auth/register', 'Auth'AuthController@postRegister');

我试过使用认证系统的现成的postLogin()功能,试过传递用户名,名字,电子邮件给它没有任何运气。我尝试像这样重写父方法:

public function postLogin(Request $request)
{
    $username = $request->input('username');
    $password = $request->input('password');
    if (Auth::attempt(['name' => $username, 'password' => $password])) {
        // Authentication passed...
        return redirect('dashboard');
    } else {
        return redirect()->intended('auth/login');
    }
}
编辑:

(这是旧的,为任何人有这个问题。)哈希函数的正确用法是

$password = Hash::make('yourPasswordString');
$result = Hash::check('yourPasswordString', $password);  //returns true

如果你使用内置的登录功能,Laravel也会对你的密码进行哈希处理,所以如果你正在对密码进行哈希处理,请检查你的模型。

这是CSFR令牌吗?由于您没有使用facade来调用表单,因此您可能需要在打开表单标记之后添加令牌调用。

电话:

{! !csrf_field () ! !}{! !Form::hidden('token', $token) !!}