DEV Community · Show DEV9/2 01:5647

Featherboard多租户改造:GitHub OAuth与路径路由

Turning Featherboard into a multi-tenant application: GitHub OAuth and path-based routing

阅读原文
Featherboard开发进入新阶段,开始支持多团队和多产品托管。目前用户认证通过GitHub OAuth实现,未来将增加其他提供商和邮箱登录。已移除临时的硬编码令牌认证。多租户路由通过app.featherboard.net/{slug}/...路径实现,slug为组织名。Axum提取器可优雅地从路径中提取组织数据。此前管理员角色通过环境变量中的硬编码令牌授予,现已替换为用户表、GitHub OAuth登录和is_admin标志。项目将所有静态文件(包括sqlx迁移文件和HTML模板)嵌入单一二进制文件,便于部署。sqlx迁移仅支持追加,修改模式需新增迁移文件。添加了GitHub账户的唯一索引以防止重复注册,但发现这阻止了用户加入多个组织,因此改为复合索引。