首页 文章

Laravel 5.1用户登录无法正常工作

提问于
浏览
0

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

<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');

我've tried using the authentication system' s现成的 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

2 回答

  • 0

    如果您使用内置登录功能,Laravel也会对您的密码进行哈希处理,因此如果您正在哈希密码,请检查您的模型 .

  • 0

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

    这是电话:

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

相关问题