如何在lavarel 5中为访客用户设置默认用户?

时间:2016-09-05 17:11:03

标签: php laravel laravel-5 laravel-5.2

如果用户未经过身份验证,是否可以创建一些自动包含的用户?例如,如果我在控制器中调用$request->user(),我将获得NULL。我希望在这种情况下获得一些默认用户模型(可能是ID为== 0的App \ User实例)。我需要它,因为我想通过entrust模块为访客用户附加一些角色和权限。

1 个答案:

答案 0 :(得分:1)

您可以添加一个简单的中间件,如果未经过身份验证,则会将用户身份验证为来宾用户。下面的代码可以解决这个问题:

class LoginAsGuest {
  public function handle($request, Closure $next)
  {
    if (!Auth::id()) {
      Auth::loginUsingId($guestUserId);
    }
  }
}

确保此中间件最后运行,以便用户有机会使用其会话/ cookie数据进行身份验证。