我试着用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');和两种观点
登录
@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这里出什么问题了?
发布于 2015-01-27 10:05:39
在将密码传递给attempt()时,不需要对其进行散列。在内部,该方法将使用Hash::check,它需要简单的密码来比较检查是否正确。(创建的每个散列都是新的,因为它是由随机盐组成的)
如果没有散列,它应该能工作:
$user = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);发布于 2015-01-27 10:01:59
$user = array(
'email' => Input::get('email'),
'password' => Hash::make(Input::get('password'))
);在这部分代码中,您需要将键"email“更改为"username”。据我所知,Laravel用户身份验证检查用户名+密码。
另外:哈希是在保存数据库中的通行证时使用的。你不需要在这里创建哈希。尝试函数为你做到了这一点。
https://stackoverflow.com/questions/28167616
复制相似问题