Tôi đang có ứng dụng một trang được tạo trên Laravel 5.1. Tôi sử dụng localStorage để giữ khóa API và tôi không cần cookie. Laravel tạo ra hai tập tin cookie cho tôi:Làm thế nào để tắt cookie trong Laravel 5?
- XSRF-TOKEN
- laravel_session
Nếu tôi đặt SESSION_DRIVER
-array
trong cấu hình môi trường của tôi, laravel_session
cookie không còn tạo ra.
Nhưng tôi nghĩ rằng có thể có một vấn đề với XSRF-TOKEN
cookie, vì tôi phát hiện ra đoạn mã này trong lớp VerifyCsrfToken
middleware:
public function handle($request, Closure $next)
{
if ($this->isReading($request) || $this->shouldPassThrough($request) || $this->tokensMatch($request)) {
return $this->addCookieToResponse($request, $next($request));
}
throw new TokenMismatchException;
}
Và addCookieToResponse
phương pháp trông như thế này:
protected function addCookieToResponse($request, $response)
{
$config = config('session');
$response->headers->setCookie(
new Cookie(
'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120,
$config['path'], $config['domain'], false, false
)
);
return $response;
}
Nó có vẻ như nó đặt cookie này không có vấn đề gì. Tôi có thể vô hiệu hóa phần mềm trung gian này, nhưng tôi muốn sử dụng nó để xác minh mã thông báo CSRF với các tiêu đề HTTP. Tôi có thể tắt cookie hoàn toàn không?
Nếu bạn đang sử dụng API của trình duyệt bằng cách sử dụng mã thông báo, tại sao bạn không tắt hoàn toàn phần mềm trung gian VerifyCsrfToken? Điều này sử dụng cookie mà bạn không quan tâm. Bạn có thể vô hiệu hóa bằng cách vào app/http/Kernel.php và bình luận dòng – codegeek
chỉ để biết thêm thông tin cơ bản, lý do muốn vô hiệu hóa cookie là gì? – ExoticChimp
@ExoticChimp Có luật bắt buộc phải thông báo cho người dùng về cookie nếu bạn sử dụng bất kỳ cookie nào. Tôi không cần chúng, vì vậy tôi muốn vô hiệu hóa chúng và được miễn phí từ đó "Chúng tôi đang sử dụng cookie" thông tin :) –