【问题标题】:Auth::check() return false Laravel 5.2Auth::check() 返回 false Laravel 5.2
【发布时间】:2018-01-07 21:45:24
【问题描述】:

我遇到了 Auth 的问题,我有管理中间件和处理函数,但 Auth::check 总是返回 false。好像用户会话不存在。

我认为问题出在/storage/bootstrap/cache 的权限上,但是当我为这些文件夹设置777 时,问题仍然存在。会话文件夹不为空。

我已尝试清除缓存。

我的管理中间件:

public function handle($request, Closure $next)
{
    //check the proper role
    if (Auth::check() && Auth::user()->isAdmin()) {
        return $next($request);
    }
    else {
        return response()->view('auth.forbidden')->header('Content-Type', 'text/html');
    }
}

有什么想法吗?

谢谢

【问题讨论】:

  • 你使用的是自己的认证系统还是 Laravel 的认证系统?
  • 自定义 Laravel 身份验证,我刚刚添加了我的管理中间件。在本地服务器上,一切正常。这个问题只在生产服务器上。
  • @zm_fans 请显示您的中间件详细信息
  • 能否请您输入您的路线代码?
  • Route::auth(); ,“web”中间件组下的所有路由。并且管理路由具有“管理”中间件。 Route::group(array('prefix' => 'admin', 'middleware' => 'web'), function() { Route::get('/',[ 'uses' => '返回\AdminController@index', 'as' => 'admin.index', 'middleware' => 'admin' ]); });

标签: php laravel session authentication


【解决方案1】:

或者你可以使用类似的东西

//check the proper role
    $user = $request->user();
    if ($user && $user->isAdmin()) {
        return $next($request);
    }
    else {
        return response()->view('auth.forbidden')->header('Content-Type', 'text/html');
    }

只要用户登录并且是管理员就可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 2016-06-08
    • 2018-09-08
    • 2015-12-14
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多