gpt4 book ai didi

php - Laravel 在 API 中设置 cookie 未设置

转载 作者:行者123 更新时间:2023-12-04 17:30:30 26 4
gpt4 key购买 nike

我使用 laravel 5 作为 Rest API,我想在 Controller 中设置一个 cookie:

return response()->json(['success' => $data], $this-> successStatus)->cookie('name', 'myvalue');

这个用响应cookie成功返回,但是前面不能访问,我也用过:
Cookie::queue($name, $value);

或者
Cookie::queue(Cookie::make('cookieName', 'value'));

或者一直在谷歌,stackoverflow,但这些都没有在浏览器中设置 cookie,我需要通过 laravel Controller 在浏览器中设置 http only cookie。我怎样才能做到这一点?

我也用过 php cookie,没有成功

最佳答案

Cookie 将设置在 web中间件组只有没有 api .根据docs , Laravel 自带 webapi中间件组包含您可能希望应用于 Web UI 和 API 路由的常见中间件:

/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
//...
],

'api' => [
'throttle:60,1',
'auth:api',
],
];

如您所见, EncryptCookiesAddQueuedCookiesToResponse中间件应用于 web仅分组但不分组 api .

// This works and sets encrypted cookie on response.
Route::group(['middleware' => ['web']], function () {
return response()
->cookie('name', 'value');
});

// This won't set cookie on response.
Route::group(['middleware' => ['api']], function () {
return response()
->cookie('name', 'value');
});

关于php - Laravel 在 API 中设置 cookie 未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60239584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com