我正在尝试将 cookie 键值与我从 laravel 后端的响应返回到我的前端,但我收到一个错误消息
Method Illuminate\Routing\ResponseFactory::withCookie does not exist.
Run Code Online (Sandbox Code Playgroud)
这是我的控制器。
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']);
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
response()返回响应工厂;它不是响应本身。您必须调用 Response Factory 上的方法来获取 Response 对象,就像调用json(...)它时一样。
您需要调用withCookieResponse 对象,而不是 Response Factory:
return response()
->json(['success' => $success], 200) // JsonResponse object
->withCookie(cookie('token', $success['token'], $minute = 10));
Run Code Online (Sandbox Code Playgroud)
您现在正在调用withCookieJsonResponse 对象,它是一个 Response 对象。
| 归档时间: |
|
| 查看次数: |
1608 次 |
| 最近记录: |