Laravel 有著優秀的預定義認證(Authentication)功能,讓開發者不必費心在重複製作用戶註冊、登入、登出等功能。
無論是早期的 laravel/ui 還是 laravel/fortify 都提供了安全、完整且方便的解決方案。
Kratos 是由 Ory Corp 所提供的開源認證解決方案,藉由設定檔的方式可以靈活設計認證模型(例如帳號密碼、第三方社群或 WebAuth 等 passwordless 的形式)
Laravel 有著優秀的預定義認證(Authentication)功能,讓開發者不必費心在重複製作用戶註冊、登入、登出等功能。
無論是早期的 laravel/ui 還是 laravel/fortify 都提供了安全、完整且方便的解決方案。
Kratos 是由 Ory Corp 所提供的開源認證解決方案,藉由設定檔的方式可以靈活設計認證模型(例如帳號密碼、第三方社群或 WebAuth 等 passwordless 的形式)
在 2021 年中旬,我曾經寫過一篇 Laravel 環境設定,不過因為工具上有些許變化,所以在 2022 年末將其重新整理一遍。
事先聲明,本文中所寫的環境設計題專門為了我自己的工作流 而打造。如果不適合你,那你是對的,請儘管改成適合你的工作流。
網路上有大量的文章探討如何使用 Laravel Queue,可惜的是,它們通常就給個 Hello World 式的範例,並未深入探討。
本篇文章會從 Laravel Queue 的實際行為上進行分析,並且著重於「失敗」的案例。
Google reCAPTCHA 是一個人類行為驗證機制,用於阻止爬蟲或類似的機器行為。
就目前為止,除了 Google 官方的 SDK 之外,幾乎找不到針對 reCAPTCHA enterprise 實作的 PHP 套件(大多都是 reCAPTCHA v2 及 v3)。
隨著 MySQL 5.7 加入對 JSON 格式的原生支援,開始有許多開發團隊把 RDBMS 當 NoSQL 使用。本篇文章對於效能議題暫且擱置,顯而易見地,越自由的格式往往會帶來更沉重的維護成本。
舉例來說,目前資料庫中可能存在以下型式的資料
{
"age": 16,
"avatar": "avatars/avatar.png"
}
然而可能因為系統改版,需要更精準地計算用戶年齡,所以將 age
欄位改為 birth
{
"birth": "2002-01-01",
"avatar": "avatars/avatar.png"
}
相較於比較現代的程式語言(如 Golang 或 Nodejs),PHP 的佈署是相對麻煩許多的--這主要是因為 PHP 的執行環境需要綁定一個網頁伺服器。
PHP 官方主要支援兩種佈署方式:
註:在大部份應用情境下,Apache + PHP Module 會比 Apache + PHP-FPM 慢上一些,尤其是當 Apache + PHP-FPM 時可以啟用 Event MPM,相較於傳統的 prefork MPM 而言可以快上 50%
Laravel Sanctum 是 Laravel 提供的輕量化 API 服務認證(Authenticate)解決方案。
Driver | 套件 | Bearer Token | Session Cookie | Token Scope |
---|---|---|---|---|
Session | 內建 | ❌ | ✅ | ❌ |
Token | 內建 | ✅ | ❌ | ❌ |
Sanctum | laravel/sanctum | ✅ | ✅ | ✅ |
Passport | laravel/passport | ✅ | ❌ | ✅ |