跳至主要内容

认证

Auth 指的是身份验证和授权,这是构建 Web 应用程序时常见的需求。身份验证是指根据用户提供的凭据验证用户身份。授权是指确定用户允许执行哪些操作。

会话与令牌

在用户提供用户名和密码等凭据后,我们希望允许他们使用应用程序,而无需在以后的请求中再次提供凭据。用户通常使用会话标识符或签名令牌(如 JSON Web Token (JWT))在后续请求中进行身份验证。

会话 ID 最常存储在数据库中。它们可以立即撤销,但需要在每次请求时进行数据库查询。

相比之下,JWT 通常不会针对数据存储进行检查,这意味着它们无法立即撤销。这种方法的优点是提高了延迟并减少了数据存储的负载。

集成点

可以在 服务器端钩子 中检查 Auth cookie。如果找到与提供的凭据匹配的用户,则用户信息可以存储在 locals 中。

指南

Lucia 是基于会话的 Web 应用认证的参考。它包含用于在 SvelteKit 和其他 JS 项目中实现基于会话的身份验证的示例代码片段和项目。在创建新项目时,可以使用 npx sv create,或在现有项目中使用 npx sv add lucia 将遵循 Lucia 指南的代码添加到项目中。

身份验证系统与 Web 框架紧密耦合,因为大部分代码都用于验证用户输入、处理错误以及将用户引导到相应的下一页。因此,许多通用的 JS 认证库都包含一个或多个 Web 框架。出于这个原因,许多用户会发现遵循 SvelteKit 特定的指南(例如 Lucia 中的示例)比在项目中包含多个 Web 框架更可取。

在 GitHub 上编辑此页面

上一页 下一页