Php Laravel Auth::TRUMENT()始终将我重定向到登录页面
我正在尝试使用LaravelPhp Laravel Auth::TRUMENT()始终将我重定向到登录页面,php,authentication,laravel,Php,Authentication,Laravel,我正在尝试使用LaravelAuth::trunt()函数,但它总是重新引导我登录页面,即使我使用valide用户名和密码 这是我的路线: Route::get('/login', 'PublicController@loginPage'); Route::post('/login', 'PublicController@loginAction'); Route::get('/users/members', array('before' => 'auth', funct
Auth::trunt()
函数,但它总是重新引导我登录页面,即使我使用valide
用户名和密码
这是我的路线:
Route::get('/login', 'PublicController@loginPage');
Route::post('/login', 'PublicController@loginAction');
Route::get('/users/members', array('before' => 'auth', function()
{
return View::make('users.members');
}));
这是我的登录功能
:
public function loginAction() {
$rules = array( 'username' => 'required',
'password' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
$messages = $validator->messages();
return Redirect::to('login')
->withErrors($validator)
->withInput(Input::except('password'));
}
else {
$user = array(
'username' => Input::get('username'),
'password' => Input::get('password')
);
$auth = Auth::attempt($user);
if ($auth) {
dd(Auth::check()); // this return always **True**
return Redirect::to('users/members');
} else {
return Redirect::to('login')
->withErrors(['Login Failed please try again']);}
}
}
当我使用错误的用户名
和密码
时,它会显示错误消息登录失败,请重试
,当我使用valide数据时,它会在不显示任何错误的情况下重新引导我进入登录页面
更新
路由筛选器:
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('login');
}
}
});
更新2:
这是我的个人资料页面(登录后我希望在其中重定向):
所以问题是,我认为用户的身份验证在登录后没有保存。能否将filters.php的相关部分发送给我们
Route::filter('auth', function()
{
// Your filter here
}
我相信这里面有某种东西阻止了正确的重定向
为了进行测试,您可以从路由中删除过滤器
Route::get('/users/members', function() ...
经过深入挖掘,我发现问题在于我在数据库中使用了不同的主键名称,user\u id,而不是id。因此,我简单地将这一行添加到了我的用户模型中
class User extends Eloquent {
protected $primaryKey = 'admin_id';
....}
注意如果主键使用的是不同的名称,而不是id,请不要忘记添加此适当性
受保护的$primaryKey='PrimaryKeyName'
这将解决问题的音调使用有效数据重定向到哪个url?另外,您是否在路由中尝试了dd(Auth::user())
?url工作正常,我在返回重定向::到('users/members')之前尝试了dd(Auth::user())
代码>行,它显示我的用户信息。此外,我还做了一些测试,我发现在认证成功后,会话不会自动保存。功能工作我已经删除了过滤器,它工作正常。对于过滤器,请检查我的更新不确定您试图使用此过滤器实现什么。因为我使用自己的身份验证,所以我不熟悉那里使用的静态函数。如果过滤器的移除对你有效,我会很高兴,如果你在我的答案上给我正确答案的“绿色检查”…绿色检查是什么?这并没有解决我的问题,如果我删除过滤器,那么所有页面都可以通过url访问。在Laravel 5.2上尝试过,没有任何改变。需要深入挖掘。
class User extends Eloquent {
protected $primaryKey = 'admin_id';
....}