身份认证
认证和授权是两种安全过程,用来管理对你的网站或应用的访问。身份认证用于验证访客的身份,而授权则允许访问受保护的区域和资源。
认证允许你为登录的个人定制你的网站的特定区域,并为个人或私人信息提供最大程度的保护。认证库(例如 Lucia Auth、Auth.js、Clerk)为多种认证方法提供了实用工具,如电子邮件登录和 OAuth 提供商。
Astro 没有官方的认证解决方案,但你可以在集成目录中找到 社区的“auth”集成。
Lucia
段落标题 LuciaLucia 是一个与框架无关、基于会话的认证库,对 Astro 支持良好。
安装
段落标题 安装使用你选择的包管理器安装 Lucia。
配置
段落标题 配置使用 Lucia 的“Astro 入门” 指南来初始化 Lucia 并配置一个适配器,设置一个数据库来存储用户和会话信息。
使用方法
段落标题 使用方法遵循 Lucia 的完整 Astro 教程之一,向你的 Astro 项目添加 用户名和密码认证 或 GitHub OAuth。
下一步
段落标题 下一步Auth.js
段落标题 Auth.jsAuth.js 是一个与框架无关的认证解决方案。社区框架适配器 auth-astro
可用于 Astro。
安装
段落标题 安装使用你偏好的包管理器的 astro add
命令来添加 auth-astro
集成。
手动安装
段落标题 手动安装要手动安装 auth-astro
,请为你的包管理器安装所需的包:
然后,使用 integrations
属性将集成应用到你的 astro.config.*
文件中:
配置
段落标题 配置在你的项目根目录中创建一个 auth.config.mjs
文件。添加你希望支持的任何认证 提供商 或方法,以及它们所需的任何环境变量。
如果你的项目根目录中还没有 .env
文件,请创建一个。添加以下两个环境变量。AUTH_SECRET
应该是一个至少包含 32 个字符的私有字符串。
使用方法
段落标题 使用方法你可以使用 auth-astro/client
模块,在脚本标签或客户端框架组件中添加登录和登出按钮。
你可以使用 getSession
方法获取用户的会话信息。
下一步
段落标题 下一步Clerk
段落标题 ClerkClerk 是一套完整的系统,它拥有嵌入式 UI、灵活的 API 以及用于验证和管理用户的仪表盘。Clerk 的官方 Astro SDK 现已推出。
安装
段落标题 安装使用你选择的包管理器安装 @clerk/astro
。
配置
段落标题 配置按照 Clerk 自己的 Astro 快速入门指南 在你的 Astro 项目中设置 Clerk 集成和中间件。
使用方法
段落标题 使用方法Clerk 提供的组件允许你根据用户的身份验证状态控制页面的可见性。向已注销的用户显示登录按钮,而不是向已登录的用户显示可用的内容:
Clerk 还允许你使用中间件以保护服务器上的路由。指定受保护的路由,并提示未经身份验证的用户登录:
下一步
段落标题 下一步- 阅读 官方
@clerk/astro
文档 - 从 Clerk + Astro 快速入门项目 的模板开始