1. Cấu hình Session Laravel (Configuration)

https://viblo.asia/p/tap-19-session-laravel-m68Z0xmAZkG

Rất vui được gặp lại các bạn trong series "Hành trình chinh phục Laravel framework" của mình. Ngày hôm nay, chúng ta sẽ cùng nhau tìm hiểu về "Session" trong Laravel, đây là một component hay sử dụng hầu hết ở các ứng dụng hiện nay.

I. Giới thiệu (Introduction)

Laravel cung cấp cho chúng ta các khuôn mẫu để có thể tương tác với session. Trong Laravel có nhiều driver để lưu trữ session. Các bạn có thể mở file config/session.php lên và sẽ thấy các driver mà Laravel cho phép ta sử dụng:

/*
|--------------------------------------------------------------------------
| Default Session Driver
|--------------------------------------------------------------------------
|
| This option controls the default session "driver" that will be used on
| requests. By default, we will use the lightweight native driver but
| you may specify any of the other wonderful drivers provided here.
|
| Supported: "file", "cookie", "database", "apc",
|            "memcached", "redis", "dynamodb", "array"
|
*/

Trong tập này mình chỉ giới thiệu về các core driver như file, cookie, databasearray, còn về các package khác thì mình có thể sẽ nói ở các tập sau hoặc bạn có thể tự tìm hiểu chúng.

1. Cấu hình (Configuration)

File cấu hình session trong ứng dụng Laravel là config/session.php. Dưới đây là một số driver hay sử dụng trong Laravel:

  • file: các session sẽ được lưu trữ trong file tại thư mục storage/framework/sessions. Bạn có thể thay đổi thư mục lưu trữ ở bên dưới:

    'files' => storage_path('framework/sessions'),
  • cookie: session sẽ được lưu trữ trong cookie an toàn, được mã hóa.

  • database: các session sẽ được lưu trữ trong database.

  • memcached/ redis: session sẽ hoạt động tốt hơn nếu lưu vào các driver này, dựa trên cache.

  • array: các session sẽ được lưu trữ trong mảng PHP và không được duy trì.

Mặc định thì Laravel sử dụng driver file, nhưng trong thực tế với các ứng dụng lớn thường hay sử dụng các package như redis hay memcached để tối ưu hiệu năng. Còn đối với driver array thường được sử dụng trong quá trình test.

Để chọn driver session cho ứng dụng, bạn chỉ cần thay đổi tại file .env.

SESSION_DRIVER=file

Ngoài ra còn có các thiết lập mà bạn cần quan tâm trong session. Chẳng hạn như thiết lập thời gian sống của session thông qua SESSION_LIFETIME ở file .env (được tính bằng phút).

SESSION_LIFETIME=120

Bạn có thể thiết lập xóa bỏ các session sau khi trình duyệt kết thúc bằng cách thay đổi giá trị bên dưới thành true:

'expire_on_close' => false,

Nếu bạn muốn tăng tính bảo mật khi lưu trữ các session, đặc biệt với driver file, bạn có thể thiết lập giá trị true cho cấu hình bên dưới:

'encrypt' => false,

Với cấu hình này, các session trước khi lưu trữ sẽ được mã hóa.

Last updated