Nuxflare Auth:使用 Nuxt、Cloudflare 和 OpenAuth.js 构建的轻量级自托管身份验证服务器
Nuxflare Auth 是一个现代、轻量级、自托管的身份验证服务器,旨在使向您的应用程序添加身份验证变得轻而易举。使用 Nuxt 3、Cloudflare Workers 和 OpenAuth.js 构建,它将您需要的所有内容捆绑在一处。
努克斯耀斑
/
授权
使用 Cloudflare、Nuxt 和 OpenAuth.js 构建的现代、轻量级、自托管身份验证服务器。
Nuxflare 授权
使用 Cloudflare、Nuxt 和 OpenAuth.js 构建的现代、轻量级、自托管身份验证服务器。
这是什么?
Nuxflare Auth 让您可以轻松地向应用程序添加身份验证。这是一个捆绑了您需要的一切的单一存储库:
- 使用 Nuxt 3 和 @nuxt/ui 构建的流畅的身份验证 UI
- 在 Cloudflare Workers 上运行的后端身份验证魔法
- 一个随时可用的示例,以便您可以了解它们如何组合在一起
特点
- ?完整的身份验证 UI 包括:
- 基于代码的登录
- 基于密码的登录
- 忘记密码流程
- 用户注册
- ?使用 GitHub 和 Google 进行 OAuth2 身份验证(轻松添加更多提供商)
- ✉️ 使用重新发送(或使用任何其他提供商)的电子邮件
- ⚡ 快如闪电,由 Cloudflare 的边缘网络提供支持
项目布局
packages/ ├── auth-frontend/ # auth UI components ├── emails/ # react email templates ├── example-client/ # example nuxt client └── functions/ # cloudflare workers
先决条件
开始之前,您需要:
- pnpm
- Cloudflare 帐户
- 来自 Google 的 OAuth 凭据...
为什么选择 Nuxflare Auth?
使用 Nuxt,已经有了很好的身份验证模块,例如 nuxt-auth-utils 和 sidebase-auth。
那么,Nuxflare Auth 有何不同?
- 解耦身份验证: Nuxflare Auth 允许您与主应用程序分开部署身份验证服务器和身份验证 UI(使用 Nuxt UI 构建)。 这意味着您可以轻松地重用您的身份验证服务器来处理多个客户端应用程序(是否使用 Nuxt 构建)、外部 API、移动应用程序等。
- 鼓励 Monorepo 架构: 通过拆分 Nuxt 应用程序和身份验证模块,Nuxflare Auth 使捆绑包大小保持最小,非常适合部署到 Cloudflare Workers,它有严格的大小限制:免费计划 3 MB,免费计划 10 MB付费计划。
项目结构
packages/ ├── auth-frontend/ # auth UI components ├── emails/ # react email templates ├── example-client/ # example nuxt client └── functions/ # cloudflare workers
部署 Nuxflare Auth
先决条件
- pnpm
- Cloudflare 帐户
- 来自 Google 和 GitHub 的 OAuth 凭证
- 用于发送电子邮件的重新发送 API 密钥
入门
- 克隆存储库并安装依赖项:
packages/ ├── auth-frontend/ # auth UI components ├── emails/ # react email templates ├── example-client/ # example nuxt client └── functions/ # cloudflare workers
- 创建并配置 API 令牌:
a.使用此链接创建具有所需权限的 Cloudflare API 令牌。
b.设置 CLOUDFLARE_API_TOKEN 环境变量:
git clone https://github.com/nuxflare/auth nuxflare-auth cd nuxflare-auth pnpm install
- 配置你的秘密:
export CLOUDFLARE_API_TOKEN=GahXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- 在 sst.config.ts 中配置你的 fromEmail:
# OAuth stuff pnpm sst secret set GoogleClientID your_client_id pnpm sst secret set GoogleClientSecret your_client_secret pnpm sst secret set GithubClientID your_client_id pnpm sst secret set GithubClientSecret your_client_secret # For emails pnpm sst secret set ResendApiKey your_resend_api_key
- 开始本地开发:
async run() { const fromEmail = "hi@nuxflare.com"; // ... }
- 部署到生产环境:
pnpm dev
客户端应用程序示例
存储库包含一个简单的示例客户端应用程序,位于packages/example-client。
可组合项的 API 与 nuxt-auth-utils 非常相似:
pnpm sst deploy --stage production
您应该将客户端指向已部署的身份验证实例的端点:
```打字稿 [packages/example-client/app/utils/auth.ts]
const client = createClient({
clientID: "nuxt",
发行者:“https://authdemo.nuxflare.com”,//
});
export const useSession = () => { const sessionState = useSessionState(); const accessToken = useAccessTokenCookie(); const refreshToken = useRefreshTokenCookie(); const clear = () => { sessionState.value = {}; accessToken.value = null; refreshToken.value = null; }; return { loggedIn: computed(() => !!sessionState.value.user), user: computed(() => sessionState.value.user || null), session: sessionState, clear, }; };
以上是Nuxflare Auth:使用 Nuxt、Cloudflare 和 OpenAuth.js 构建的轻量级自托管身份验证服务器的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。
