我是Larave的新手,我制作了一个不起作用的登录表单,我搜索了很多关于这个问题的信息,发现这些问题和答案对我不起作用:
我读了这3个问题,再次不工作:
这是我的用户表:
id |用户名|密码|记住|令牌|创建|更新|在
1|e@so.com|testPass1
这是我的用户模型:
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
public static $auth_rules=[
'email'=>'required|email',
'password'=>'required|between:3,18'
];
protected $hidden = array('password', 'remember_token');
}
这是我的路线:
Route::group(array('prefix'=>'admin','before'=>'Auth'),function(){
Route::resource('posts','AdminPostsController', array('except'=>array('show')));
});
这是过滤器(Auth):
Route::filter('Auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('admin/login');
}
}
});
这是AdminAuthController,它将数据从登录发送到AdminAuthController@postLogin:
//This is postLogin method:
public function postLogin(){
//Showing username and password
echo 'Username:'.Input::get('email').'<br/>';
echo 'Password:'.Input::get('password').'<br />';
//If username and password: return true
dd(Auth::attempt(array('username'=>Input::get('email'),'password'=>Input::get('password') )));
}
这是Laravel在浏览器中返回的内容:http://i.stack.imgur.com/9cq61.png
表中的密码需要散列!
您可以使用Hash::make('密码')
来生成密码的哈希值。如果你想在开发中手动更新你的数据库,你可以使用artisan tinker
来快速生成哈希:
php artisan tinker
> echo Hash::make('your-secret-password');
复制输出并更新数据库中的密码字段。
注意:db字段至少需要60个字符长