跳至主要內容

驗證

驗證指的是身份驗證和授權,這是在建構網路應用程式時常見的需求。身份驗證是指根據使用者提供的憑證驗證使用者是否為其聲稱的身份。授權是指確定他們被允許採取哪些操作。

Session vs. Token

在使用者提供他們的憑證(例如使用者名稱和密碼)之後,我們希望允許他們使用應用程式,而無需在未來的請求中再次提供他們的憑證。使用者通常在後續請求中透過 Session ID 或簽署的 Token(例如 JSON Web Token (JWT))進行身份驗證。

Session ID 最常儲存在資料庫中。它們可以立即撤銷,但需要在每個請求上進行資料庫查詢。

相反地,JWT 通常不會與資料儲存庫進行檢查,這表示它們無法立即撤銷。這種方法的優點是改善了延遲並減少了資料儲存庫的負載。

整合點

驗證 cookies 可以在伺服器鉤子內進行檢查。如果找到與提供的憑證相符的使用者,則可以使用者的資訊儲存在 locals 中。

指南

Lucia 是基於 Session 的網路應用程式驗證的參考。它包含在 SvelteKit 和其他 JS 專案中實現基於 Session 的驗證的範例程式碼片段和專案。您可以使用 npx sv create 在建立新專案時,或使用 npx sv add lucia 對現有專案,將遵循 Lucia 指南的程式碼新增到您的專案中。

驗證系統與網路框架緊密耦合,因為大部分程式碼都用於驗證使用者輸入、處理錯誤,以及將使用者導向適當的下一頁。因此,許多通用 JS 驗證程式庫都包含一個或多個網路框架。因此,許多使用者會發現遵循 SvelteKit 專屬指南(例如 Lucia 中的範例)比在他們的專案中擁有數個網路框架更可取。

在 GitHub 上編輯此頁面

上一頁 下一頁