Laravel 身份验证无效且永远不会 return 正确
Laravel Authentication not working and never return true
我是 Larave 的新手,我创建了一个无法使用的登录表单,我搜索了很多有关此问题的信息,但发现这些问题和答案对我不起作用:
- Question 1
- Question 2
- Question 3
我读了这 3 个问题,但还是没用:
这是我的 users 表:
id | username | password | remember_token | created_at | updated_at
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 return:
http://i.stack.imgur.com/9cq61.png
您 table 中的密码需要 散列!
您可以使用 Hash::make('password')
生成密码的哈希值。如果你想在开发中手动更新你的数据库,你可以使用 artisan tinker
来快速生成一个散列:
php artisan tinker
> echo Hash::make('your-secret-password');
复制输出并更新数据库中的密码字段。
注意 数据库字段需要至少 60 个字符长
我是 Larave 的新手,我创建了一个无法使用的登录表单,我搜索了很多有关此问题的信息,但发现这些问题和答案对我不起作用:
- Question 1
- Question 2
- Question 3
我读了这 3 个问题,但还是没用:
这是我的 users 表:
id | username | password | remember_token | created_at | updated_at
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 return: http://i.stack.imgur.com/9cq61.png
您 table 中的密码需要 散列!
您可以使用 Hash::make('password')
生成密码的哈希值。如果你想在开发中手动更新你的数据库,你可以使用 artisan tinker
来快速生成一个散列:
php artisan tinker
> echo Hash::make('your-secret-password');
复制输出并更新数据库中的密码字段。
注意 数据库字段需要至少 60 个字符长