【发布时间】:2022-01-30 22:21:02
【问题描述】:
我正在使用 Laravel 构建一个 RESTful API。我使用 Basic HTTP Auth (Authenticate header) 和这个过滤器:
Route::filter('auth', function()
{
$credentials = ['email' => Request::getUser(), 'password' => Request::getPassword()];
if (!Auth::once($credentials)) {
$response = ['error' => true, 'message' => 'Unauthorized request'];
$code = 401;
$headers = ['WWW-Authenticate' => 'Basic'];
return Response::json($response, $code, $headers);
}
});
它可以工作,但是 Laravel 会尝试为用户设置一个 cookie(发送一个 Set-Cookie 标头)。我尝试将session.driver 配置键设置为array,却发现它现在发送了Set-Cookie: laravel_session=deleted 的东西。
我怎样才能完全禁用这个Set-Cookie 标头?
谢谢。
【问题讨论】:
-
你试过 Laravel 4 原生的基本认证过滤器
auth.basic吗? -
@Usman 是的,它的工作原理几乎相同,只是它发送了一个
WWW-Authenticate响应标头,这是我不想要的。它还设置了laravel_sessioncookie。 -
供将来参考 - 在 Laravel 5 中,只需使用数组进行会话存储并在 config/app.php 中禁用 cookie 支持。不要忘记使用 artisan 来清除编译。
标签: api session-cookies laravel laravel-4