如果用户未经过身份验证,是否可以创建一些自动包含的用户?例如,如果我在控制器中调用$request->user()
,我将获得NULL
。我希望在这种情况下获得一些默认用户模型(可能是ID为== 0的App \ User实例)。我需要它,因为我想通过entrust模块为访客用户附加一些角色和权限。
答案 0 :(得分:1)
您可以添加一个简单的中间件,如果未经过身份验证,则会将用户身份验证为来宾用户。下面的代码可以解决这个问题:
class LoginAsGuest {
public function handle($request, Closure $next)
{
if (!Auth::id()) {
Auth::loginUsingId($guestUserId);
}
}
}
确保此中间件最后运行,以便用户有机会使用其会话/ cookie数据进行身份验证。