博客搭建其三:认证体系Authing
项目笔记:Ark-Identity-System (A.I.S) - 基于 Authing 的身份认证集成SOP
项目代号: A.I.S
核心服务: Authing
集成目标: 为 Waline 评论系统提供统一的、支持社交登录的、非强制性的用户认证服务。
第一部分:Authing 核心概念与选型
1.1 什么是 Authing?
- Authing 是一个中心化的身份认证解决方案。它将复杂的“用户注册、登录、密码管理、社交登录集成、安全策略”等功能,全部打包成一个独立的云服务。
- 类比: 它就像为你的所有应用(博客、未来的APP等)提供了一个统一的“鹰角网络通行证”系统。
1.2 为什么选择 Authing?
国内优先: 服务器在国内,访问速度快,稳定性高,符合项目要求。
功能全面: 免费版已提供足够强大的功能,包括社会化登录(GitHub)、自定义UI、安全策略等。
解耦: 将用户身份管理从我们的 Waline 后端服务中剥离出来,实现了专业化分工。Waline 只负责评论,Authing 只负责身份,架构更清晰。
强大的兼容性: 与 Waline 等现代应用有良好的集成支持。
第二部分:Authing 平台配置
2.1 创建用户池 (User Pool)
操作: 登录 Authing 控制台 -> 创建用户池。
关键选择: 选择
B2C (Business to Customer)类型的用户池。B2E适用于企业内部员工,不符合我们面向广大读者的场景。命名: 用户池命名为
arknights-blog-users。这个池子就是存放所有博客读者的独立“档案室”。
2.2 创建自建应用
- 操作: 在
arknights-blog-users用户池下 -> 应用 -> 自建应用 -> 创建。 - 作用: 这个“应用”是我们的 Waline 评论系统在 Authing 中的唯一身份。Waline 就是通过这个应用的
App ID来和 Authing 对话的。 - 关键信息提取: 在应用的“配置”页面,必须记录下以下两个核心参数:
App ID: 一长串唯一字符串。应用域名 (appDomain): 形如your-app-domain.authing.cn。

2.3 配置登录回调 URL (最关键的安全配置)
- 作用: 定义用户在 Authing 成功登录后,被允许安全跳转回的目标地址。如果目标地址不在此列表中,Authing会拒绝跳转。
- 配置: 在“应用配置”->“登录回调 URL”中,添加所有可能的访问路径:
- 线上生产域名:
https://linuxnc.xyz - 线上 www 域名:
https://www.linuxnc.xyz - 本地测试IP:
http://10.0.0.55:4000 - 本地测试域名:
http://localhost:4000
- 线上生产域名:

2.4 配置社会化登录 (以 GitHub 为例)
- 目标: 让用户可以在 Authing 登录框中看到“使用 GitHub 登录”的按钮。
- 双向配置流程:
- 在 Authing 端:
- 进入 社会化身份源 -> 添加/配置 GitHub。
- Authing 会提供一个专用的“回调地址”,形如
https://core.authing.cn/connections/social/.../callback。 - 复制这个地址。
- 在 GitHub 端:
- 登录 GitHub -> Settings -> Developer settings -> OAuth Apps -> New OAuth App。
- 填写应用名称和主页URL。
- 将从 Authing 复制的那个回调地址,精确地粘贴到 “Authorization callback URL” 输入框中。
- 创建应用,获取
Client ID和Client Secret。
- 回到 Authing 端:
- 将从 GitHub 获取的
Client ID和Client Secret填回到 Authing 的 GitHub 身份源配置页面。 - 设置 Scopes (授权范围):只保留最核心的
user:email和read:user权限,避免过度索权。 - 关联应用: 在该身份源的“应用连接”中,开启你的博客应用。
- 将从 GitHub 获取的
- 在 Authing 端:
第三部分:与 Waline 前端的最终集成
这一步是在博客主题的配置文件 _config.butterfly.yml 中,告诉 Waline 前端如何与我们配置好的 Authing 服务进行交互。
3.1 核心配置 (_config.butterfly.yml -> waline.option)
1 | option: |
3.2 用户体验流程
- 未登录用户看到评论框和昵称/邮箱输入框。
- 点击“登录”按钮。
- Waline 前端脚本读取
provider配置,将页面重定向到 Authing 的托管登录页。 - 用户在 Authing 页面选择 GitHub 登录,授权后,被 Authing 安全地重定向回博客的评论区。
- Waline 脚本拿到 Authing 返回的凭证,完成登录,评论框切换到“已登录”状态。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 suxiao3316的ark小站!
评论






