草梅 Auth 是一个基于 Nuxt 全栈框架的统一登录平台。
支持 OAuth2.0 协议,集成邮箱、用户名、手机号、验证码、社交媒体(GitHub、Google、QQ、微博 等)等多种登录注册方式。

0%

草梅 Auth 1.0.0 发布与第三方登录接入指南 | 2025 年第 29 周草梅周报

本文在 草梅友仁的博客 发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。

前言

欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。


本周依旧在开发 草梅 Auth 中。

你也可以直接访问官网地址:https://auth.cmyr.dev/

本周 草梅 Auth 也正式发布了 1.0.0 版本。

目前已经实现了以下登录方式:

  • 邮箱 + 密码
  • 用户名 + 密码
  • 手机号 + 密码
  • 邮箱验证码
  • 短信验证码
  • 第三方社交媒体(GitHub、Google、Microsoft、Discord、微博、QQ 等)

本周主要在研究第三方社交媒体登录的事情,接下来会详细讲下这个事情。

首先要说明的是,为什么要接入第三方登录?

原因很简单:因为第三方登录可以让用户更方便地注册和登录你的应用,减少用户的注册成本,提高用户体验。

就像国内的应用大多会接入微信登录,国外的应用大多会接入 Google 登录一样,这已经成为了一种趋势。

草梅 Auth 作为一个统一登录平台,自然要实现这一功能。

要接入第三方登录,首先要知道怎么接入第三方登录。

目前主流的第三方登录方案普遍采用 OAuth 2.0 协议。

OAuth 2.0 是一种授权协议,它允许用户授权第三方应用访问他们在社交媒体上的信息,而无需分享用户名和密码。

草梅 Auth 会根据用户的登录方式,自动调用对应的 OAuth 2.0 接口,获取用户的信息。

接入第三方登录的流程大致如下:

  1. 用户点击第三方登录按钮
  2. 应用重定向用户到第三方登录页面
  3. 用户在第三方登录页面输入用户名和密码,授权应用访问他们的信息
  4. 第三方登录页面重定向用户回应用,并携带授权码
  5. 应用使用授权码向第三方登录接口请求用户信息
  6. 第三方登录接口返回用户信息
  7. 应用使用用户信息创建或更新用户账户,并登录用户
  8. 用户成功登录,应用跳转到用户主页或其他页面

接入第三方登录的具体实现会根据不同的社交媒体而有所不同,但大致流程是类似的。

所以,开发者要先在对应的平台注册应用,获取到应用的 Client ID 和 Client Secret。

然后,开发者要在应用中配置好对应的 OAuth 2.0 信息,包括 Client ID、Client Secret、回调 URL 等。

最后,用户点击登录按钮,应用就会跳转到对应的第三方登录页面,用户在页面中输入用户名和密码,授权应用访问用户信息。

这样就可以使用第三方登录的方式登录应用了。

在草梅 Auth 中,则是通过调用 better-auth 封装好的插件,来实现 GitHubGoogleMicrosoftDiscord 等第三方平台的登录。

只要设置对应的环境变量,就能实现相应的登录方式。

以下是截图展示:

image-20250720201256684

实现 GitHub、Google、Microsoft、Discord 等国外第三方平台的接入并不复杂,在 better-auth 的文档中也有提及。

实现国内的微博QQ (以及微信抖音)等第三方平台的接入会略显麻烦。

首先,由于政策不同,国内的第三方平台普遍要求接入的网站拥有 IPC 备案号才能允许接入,部分平台(例如微信、抖音等)还要求有企业(或个体户)资格才能接入第三方登录。

除此之外,由于习惯原因,国内的第三方平台普遍在返回的用户信息中不提供邮箱(微博则是需要单独申请),因此在用户的关联上也成难题。

就我个人这段时间的调研而言,在国内,接入门槛最低的第三方平台是来自网页端时代的 QQ 和微博,这两个平台只需要有 IPC 备案号就能接入,门槛较低。

在草梅 Auth 中,也接入了 QQ 和微博作为国内的第三方登录方式。

image-20250720202343113

您可以通过国内版体验:https://auth.cmyr.ltd

因此,目前最合适个人开发者的全球化第三方登录方式分别是:GitHub、Google、微博、QQ。

如果你也想接入第三方登录,不妨优先考虑以上几个社交平台。

接入 QQ 登录的过程中顺便修了一下 better-auth 的一个 BUG

博客更新

GitHub Release

caomei-auth

v1.0.0 - 2025-07-19 19:22:21

摘要:
版本 1.0.0 (2025-07-19) 摘要:

代码重构:

  • 迁移电话功能开关和环境变量配置到运行时
  • 重构认证模块、数据库连接和存储系统
  • 优化登录、注册、找回密码等页面的状态管理
  • 统一环境变量前缀为 NUXT_PUBLIC
  • 移除未使用的代码和冗余配置

新功能:

  • 新增 Discord、Microsoft、QQ、微博等社交登录支持
  • 添加手机号验证、短信功能、匿名登录功能
  • 实现用户资料管理(头像上传、昵称设置等)
  • 新增会话管理、密码修改功能
  • 支持 PostgreSQL 和 SQLite 数据库
  • 添加文件存储功能(支持 S3 和 Vercel Blob)
  • 新增隐私政策和服务条款页面

Bug 修复:

  • 修复社交登录按钮样式问题
  • 优化临时邮箱生成逻辑
  • 修正 S3 客户端端点配置
  • 修复用户名显示问题
  • 统一错误提示显示时间
  • 更新环境变量处理逻辑
  • 添加移动端响应式样式

其他改进:

  • 优化 UI 组件和页面布局
  • 添加主题色配置
  • 增强表单验证功能
  • 改进用户交互提示
  • 优化代码结构和可维护性

最新 GitHub 加星仓库

  • CaoMeiYouRen starred upyo - 2025-07-18 17:02:36
    Upyo 是一个跨运行时的简单库,用于通过 SMTP 和各种邮件服务提供商发送电子邮件。支持 Node.js、Deno、Bun 和边缘函数环境,主要使用 TypeScript 编写,已获得 303 个星标。
  • CaoMeiYouRen starred genai-toolbox - 2025-07-15 19:02:46
    MCP Toolbox for Databases 是一个开源的数据库 MCP 服务器,主要使用 Go 语言开发,目前获得 7312 个星标。
  • CaoMeiYouRen starred caomei-auth - 2025-07-15 10:32:19
    基于 Nuxt 全栈框架的统一登录平台,支持 OAuth2.0 协议,集成多种登录注册方式包括邮箱、用户名、手机号验证码及社交媒体登录。主要开发语言为 Vue。

其他博客或周刊推荐

阮一峰的网络日志

阿猫的博客

潮流周刊

二丫讲梵的学习周刊

总结

本周的更新和动态如上所示。感谢您的阅读!
您可以通过以下方式订阅草梅周报的更新:

往期回顾

本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/2025-29-caomei-weekly-auth-1-0-0-third-party-login.html
版权声明:本文采用 CC BY-NC-SA 4.0 协议 进行分发,转载请注明出处!

坚持原创技术分享,您的支持将鼓励我继续创作!