登录页面说登录错误

时间:2015-01-27 09:58:47

标签: php laravel

我试图在laravel中登录,它不会给我一个成功的登录。

这是我登录的代码:

public function login()
{
    $user = array(
        'email' => Input::get('email'),
        'password' => Hash::make(Input::get('password'))
    );

    if (Auth::attempt($user)) {
        return Redirect::to('showlogin');
    }
    else{
        return 'Wrong username/password';

    }
}
public function showlogin()
{

    return View::make('login');

}

它总是给我留言:“用户名/密码错误”。我放入的东西并不重要。当我把正确的组合给它时,它给了我一个消息,当我给出错误组合的类型时,它也会给我留言。

路线:

Route::get('admin', 'TestController@login');
Route::get('login', 'TestController@showlogin');

和2个观点

登录

@extends('layout')
@section('content')
        <h1>Login</h1>
        {{ Form::open(array('url' => 'admin', 'method' => 'get')) }}
        <div>
            {{ Form::label('email', 'E-mail:') }}
            {{ Form::text('email') }}
            {{ $errors->first('email') }}
        </div>


        <div>
            {{ Form::label('password', 'Password:')}}
            {{ Form::password('password')}}
            {{ $errors->first('password') }}
        </div>


        <div>
        {{ Form::submit('Login')}}
        </div>
        {{ Form::close()}}
@stop

管理

@extends('layout')

@section('content')
<h1>Admin page</h1>
@stop

这里出了什么问题?

2 个答案:

答案 0 :(得分:1)

将密码传递给attempt()时,无需对密码进行哈希处理。在内部,该方法将使用需要普通密码的Hash::check来比较检查它是否正确。 (创建的每个哈希都是新的,因为它由随机盐组成)

如果没有散列,它应该可以工作:

$user = array(
    'email' => Input::get('email'),
    'password' => Input::get('password')
);

答案 1 :(得分:0)

$user = array(
    'email' => Input::get('email'),
    'password' => Hash::make(Input::get('password'))
);

在此部分代码中,您需要将密钥“email”更改为“username”。据我所知,Laravel用户身份验证检查用户名+密码。

另外:哈希是在数据库中保存传递时。您不需要在这里创建哈希。尝试功能为你做到了。