认证体系
iFluxArt 的认证系统架构和工作原理
Hey,同学!想了解 iFluxArt 是如何保证安全的吗?这一篇全面介绍认证体系~ 🛡️
🤔 什么是认证?
认证就是回答「你是谁」这个问题。在 iFluxArt 中:
text
用户 → 输入账号密码 → 验证 → 登录成功
💡 想象一下:认证就是「门卫」,检查你有没有「进门卡」!
⚙️ 技术架构
认证服务
使用 Supabase Auth:
| 功能 | 说明 |
|---|---|
| 邮箱登录 | 传统账号密码 |
| OAuth 登录 | GitHub 第三方登录 |
| 邮箱验证 | 注册后验证邮箱 |
| 密码找回 | 发送重置链接 |
| Session 管理 | 登录状态保持 |
工作流程
text
1. 用户提交登录请求
2. Supabase 验证账号密码
3. 返回 JWT Token(临时凭证)
4. 客户端保存 Token
5. 每次请求带上 Token
6. 服务端验证 Token
🔧 支持的方式
1. 邮箱密码
最传统的方式:
typescript
// 登录
const { data, error } = await supabase.auth.signInWithPassword({
email: 'user@example.com',
password: 'password',
});
2. GitHub OAuth
使用 GitHub 账号登录:
typescript
// 登录
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'github',
});
3. 匿名登录(待实现)
支持游客登录,部分功能受限。
🔐 安全机制
1. 密码安全
- 密码加密存储
- 密码强度要求
- 定期提醒修改
2. Session 管理
- Token 有效期:7 天
- 自动刷新
- 登出后立即失效
3. 防护措施
| 防护 | 说明 |
|---|---|
| Rate Limiting | 防止暴力破解 |
| 验证码 | 防止机器人 |
| HTTPS | 传输加密 |
🔗 与其他系统的关系
text
Web / Blog / Docs / Links
↓
共享认证 ← Supabase Auth
↓
Admin (需要更高权限)
- 所有子系统共享同一个认证
- 登录一次,处处通行
- 权限控制按项目/功能划分
💡 最佳实践
1. 使用强密码
text
✅ iFluxArt2024@Secure!
❌ 123456
2. 启用双重认证(可选)
在 Supabase 后台启用 MFA。
3. 定期检查会话
查看活跃设备,及时退出不用的设备。
📖 下一步
🛡️ 好的认证体系让网站「固若金汤」!