Php Laravel Auth::TRUMENT()始终将我重定向到登录页面

Php 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

我正在尝试使用Laravel
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';
....}