iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
自我挑戰組

我推的Laravel系列 第 20

【Day-19】我推的Laravel-進階篇-Session & Cookie

  • 分享至 

  • xImage
  •  

簡介

Session和Cookie常會用在儲存用戶訊息和管理用戶狀態,Laravel也有一套現成的可以使用
最常見的交互使用情境就是登入、登入後記錄Cookie,達到無須每次登入
以下詳細介紹

Session

  • 儲存位置: Session資料儲存在伺服器上,通常在伺服器的檔案系統或記憶體中。
  • 伺服器儲存: Session資料在伺服器端存儲,而不會傳送到客戶端。 客戶端只能透過Session ID來識別自己的Session。
  • 無大小限制: 與Cookie不同,Session沒有明確定義的大小限制,因此可以儲存大量資料。
  • 過期時間: Session通常具有較短的生命週期,可以在使用者關閉瀏覽器或一段時間不活動後自動過期。
  • 安全性: 由於Session資料儲存在伺服器上,因此它們比Cookie更安全,不容易受到客戶端干擾或竄改。

Laravel session

以下是Laravel session基本用法

// Retrieve a piece of data from the session...
$value = session('key');

// Specifying a default value...
$value = session('key', 'default');

// Store a piece of data in the session...
session(['key' => 'value']);

Cookie

  • 儲存位置: Cookie是儲存在使用者瀏覽器中的小型文字文件,通常以鍵值對的形式儲存
  • 客戶端儲存: Cookie是在客戶端儲存的,也就是儲存在使用者的電腦上。 每次使用者要求網站時,Cookie會自動包含在HTTP請求頭中,並傳送給伺服器。
  • 大小限制: 每個Cookie的大小通常受到限制,一般為幾KB。 這意味著Cookie只能儲存相對較小的資料。
  • 過期時間: 您可以設定Cookie的過期時間,以指定Cookie何時過期。 過期時間可以是會話層級(瀏覽器關閉後刪除)或持久性(在指定的日期和時間過期)。
  • 安全性: Cookie可以設定為安全的,這意味著它們只能透過HTTPS協定傳輸,以提高安全性。 但Cookie中的資料可以被瀏覽器擴充和開發者工具訪問,因此儲存敏感資訊不安全。

Laravel有自帶Cookie,可以透過Cookie解析工具查看(這裡使用Cookie Editor)
https://ithelp.ithome.com.tw/upload/images/20231004/20163286aQRKskFvr6.png

Cookie儲存在客戶端,通常一些會和後端交互使用的都會進行加密
不然例如:語言、地區設定等只有前端會使用的可以不用加密

參考與延伸閱讀

Laravel HTTP Session
[延伸創作] 深入 Session 與 Cookie:Laravel 的實作


上一篇
【Day-18】我推的Laravel-進階篇-Extend & Implement
下一篇
【Day-20】我推的Laravel-進階篇-Lifecycle in Laravel
系列文
我推的Laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言