SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证

前言

Svelte,一个语法简洁、入门容易,面向未来的前端框架。

从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:

Svelte 以其独特的编译时优化机制著称,具有轻量级 、高性能 、易上手 等特性,非常适合构建轻量级 Web 项目。

为了帮助大家学习 Svelte,我同时搭建了 Svelte 最新的中文文档站点。

如果需要进阶学习,也可以入手我的小册《Svelte 开发指南》,语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!

欢迎围观我的"网页版朋友圈"、加入"冴羽·成长陪伴社群",踏上"前端大佬成长之路"。

身份认证

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

会话(Sessions) vs 令牌(tokens)

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

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

相比之下,JWT 通常不会与数据存储进行校验,这意味着它们无法被立即撤销。这种方法的优势是改善了延迟并减少了数据存储的负载。

集成点

可以在服务端 hooks中检查身份认证 cookies。如果找到与提供的凭证匹配的用户,用户信息可以存储在 locals 中。

指南

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

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

Svelte 中文文档

点击查看中文文档:SvelteKit 身份认证

系统学习 Svelte,欢迎入手小册《Svelte 开发指南》。语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!

此外我还写过 JavaScript 系列、TypeScript 系列、React 系列、Next.js 系列、冴羽答读者问等 14 个系列文章, 全系列文章目录:github.com/mqyqingfeng...

欢迎围观我的"网页版朋友圈"、加入"冴羽·成长陪伴社群",踏上"前端大佬成长之路"。

相关推荐
三小河6 小时前
从 Markdown 到 Generative UI:AI 如何从“生成答案”进化到“生成界面”?
前端·人工智能·后端
请为小H留灯6 小时前
Windows 本地前端项目一键运行指南:Volta+Node+pnpm + 阿里镜像完整初始化流程
前端·pnpm·node·js
J船长6 小时前
从 App 开发到 Unity 游戏开发:建立认知地图,结合 AI 开始实践
前端
Highcharts.js6 小时前
用Highcharts开发动态主从图表|双图联动的时间序列图表示例
javascript·数据库·信息可视化·highcharts·图表开发·动态图表
牛奔6 小时前
mise 管理多版本 Go 项目
开发语言·前端·chrome·后端·golang
志尊宝7 小时前
Vue3 零基础每日笔记(076):防抖节流的正确使用——搜索框、按钮防重复提交、滚动监听
javascript·vue.js·笔记
能源革命8 小时前
Vue 网格拖拽布局组件全景指南:7 大方案深度对比
前端·javascript·vue.js
雷工笔记8 小时前
KingFusion 驾驶舱开发:ECharts小时模板实现动态时间窗口
javascript
知野小兔8 小时前
JavaScript中Map和Set详解
javascript