我有一个用户模型,其中有 2 个模型始终通过 $with 加载。在用户创建时,不会创建这两个模型,因为用户必须在登录后创建它们,而这些模型不可用。至此登录工作正常,用户模型已返回。
创建始终加载用户模型的模型后,我必须在邮递员上登录两次,因为第一次响应只返回 204 突然没有内容,第二次登录时我得到了正确的用户模型。
我正在使用 Laravel Sanctum 并使用 Breeze 作为脚手架。我只更改了身份验证中间件以在登录后返回 json 对象,如下所示:
public function handle(Request $request, Closure $next, string ...$guards): Response
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return response()->json([
'user' => Auth::user(),
], 200);
}
}
return $next($request);
}
我建议使用任何模拟工具(例如https://mock-api.net)来模拟用户模型,以确保一切正常并缩小问题范围。