我正在尝试从Laravel后端向前端返回一个带有响应的cookie键值,但是出现错误提示
public function login(UserLoginRequest $request)
{
if(Auth::attempt(['email' => $request->get('email'), 'password' => $request->get('password'), 'role' => 'user'])){
$user = Auth::user();
$success['token'] = $user->createToken('AppName')->accessToken;
$success['user'] = new AppUser($user);
return response()->WithCookie(cookie('token', $success['token'], $minute = 10))->json(['success' => $success], 200);
} else {
return response()->json(['errors']);
}
}
这是我的控制者。
Headers: ["*"]
我在做什么错了?
答案 0 :(得分:2)
response()
返回响应工厂;它本身不是响应。您必须在Response Factory上调用一个方法以获取Response对象,就像在其上调用json(...)
一样。
您需要在Response对象而不是Response Factory上调用withCookie
:
return response()
->json(['success' => $success], 200) // JsonResponse object
->withCookie(cookie('token', $success['token'], $minute = 10));
您现在正在作为响应对象的JsonResponse对象上调用withCookie
。