如何在laravel 5中为来宾用户设置默认用户


How to set default user for guest users in laravel 5?

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

您可以添加一个简单的中间件,如果用户未经过身份验证,则将其身份验证为Guest用户。下面的代码应该可以达到这个效果:

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

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