Laravel auth有时会检索错误的用户

时间:2018-05-18 02:08:40

标签: php laravel laravel-5 laravel-5.6

我的laravel应用程序有问题,这对我来说就像一场噩梦我尝试了解决它的所有内容,但遗憾的是我没有足够的运气,所以我为你们发布了这个问题通过这个指导我,问题是auth系统有时会以当前用户的身份检索错误的用户...我的意思是有时当我在管理区域工作并且我提交表单或刷新页面时应用程序显示错误auth用户(不是我登录的那个)......有时它会完全记录我。 我不知道是什么导致这种情况,我尝试了很多理论,但它没有用。

关于如何解决这个问题的任何想法?

更新:

我的laravel版本是5.6.1,我在应用程序服务器上部署了该应用程序。

我正在使用基于文件的会话,我正在使用多个身份验证,一个用于普通用户,另一个用于管理员,我还尝试将用户表分为两个deffrient表,一个用于普通用户,另一个用于管理员但是它并没有解决问题。

我已将多个身份验证注册为以下

配置/ auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admin',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admin' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],

路由文件Web路由:

Route::group(['middleware' => [ 'auth:admin']], function()
{     

}

2 个答案:

答案 0 :(得分:0)

首先创建两个中间件Admin和User

路由文件网路径

Route::group(array('middleware' => ['User']), function () 
{ 


}); 

Route::group(array('middleware' => ['Admin','User']), function () 
{ 


});

答案 1 :(得分:0)

您可以为此创建自定义中间件:

这是功能:

     $USER = Session::get('USER');
     $ADMIN = Session::get('ADMIN');
     if($ADMIN || $USER) {
        return $next($request);
     }