Stack Auth项目REST API全面指南
2025-07-07 07:45:08作者:柯茵沙
项目概述
Stack Auth是一个现代化的身份验证解决方案,提供了完整的REST API接口,支持前后端分离架构。无论您使用何种编程语言或框架,都可以通过这套API实现用户认证、数据管理等功能。
API认证机制
Stack Auth API采用基于HTTP头的认证方式,所有请求都需要包含以下认证头信息:
curl https://api.stack-auth.com/api/v1/ \
-H "X-Stack-Access-Type: <either 'client' or 'server'>" \
-H "X-Stack-Project-Id: <your project UUID>" \
-H "X-Stack-Publishable-Client-Key: pck_<your publishable client key>" \
-H "X-Stack-Secret-Server-Key: ssk_<your secret server key>" \
-H "X-Stack-Access-Token: <the current user's access token>"
认证头详解
头字段 | 类型 | 必填 | 说明 |
---|---|---|---|
X-Stack-Access-Type |
"client"或"server" | 是 | 指定API访问类型,前端使用"client",后端使用"server" |
X-Stack-Project-Id |
UUID | 是 | 项目唯一标识符,可在控制面板获取 |
X-Stack-Publishable-Client-Key |
字符串 | 客户端必填 | 客户端API密钥,可公开使用 |
X-Stack-Secret-Server-Key |
字符串 | 服务端必填 | 服务端API密钥,必须保密 |
X-Stack-Access-Token |
字符串 | 可选 | 当前用户的访问令牌,未提供表示未登录状态 |
快速入门指南
1. 选择API类型
根据您的应用场景选择合适的API访问类型:
- 客户端API:适用于前端应用,只能操作当前认证用户的数据
- 服务端API:适用于后端服务,可以管理所有用户数据
2. 配置认证信息
在您的应用中配置正确的认证头信息:
- 前端应用:使用
client
类型和可发布的客户端密钥 - 后端服务:使用
server
类型和保密的服务器密钥
3. 发起API请求
按照API文档规范构造HTTP请求,确保包含所有必要的认证头。
4. 处理响应结果
根据API返回的状态码和响应体处理结果:
- 2xx状态码表示成功
- 4xx状态码表示客户端错误
- 5xx状态码表示服务器错误
常见问题解答
1. 支持哪些编程语言?
Stack Auth API基于标准HTTP协议,理论上支持所有能发起HTTP请求的编程语言,包括但不限于:
- JavaScript/TypeScript
- Python
- Java/Kotlin
- Go
- C#/.NET
- Ruby
- PHP
- Swift/Objective-C
2. 客户端和服务端API如何选择?
客户端API特点:
- 适用于浏览器或移动应用
- 只能操作当前用户数据
- 使用可公开的客户端密钥
服务端API特点:
- 适用于受控的后端服务
- 可以管理所有用户数据
- 使用必须保密的服务器密钥
3. 管理API是什么?
管理API(admin
类型)提供对项目配置的编程访问权限,功能包括:
- 项目设置修改
- 高级用户管理
- 系统监控
注意:管理API权限极高,使用时需格外谨慎。
4. 如何处理API错误?
Stack Auth API使用标准HTTP状态码,常见错误包括:
状态码 | 含义 | 处理建议 |
---|---|---|
400 | 请求参数错误 | 检查请求参数是否符合文档要求 |
401 | 认证失败 | 验证认证头是否正确设置 |
403 | 权限不足 | 检查API访问类型是否匹配操作 |
404 | 资源不存在 | 确认请求的资源ID是否正确 |
429 | 请求过于频繁 | 降低请求频率或实现重试机制 |
500 | 服务器错误 | 联系技术支持或稍后重试 |
错误响应会包含JSON格式的详细信息,帮助定位问题。
5. 是否有速率限制?
是的,Stack Auth实施了分级的速率限制策略:
- 客户端API:限制较宽松,适合用户操作频率
- 服务端API:限制较严格,防止滥用
- 管理API:限制最严格,确保系统安全
当触发速率限制时,响应头会包含重置时间信息。
最佳实践建议
-
密钥管理:
- 客户端密钥可以公开,但建议定期轮换
- 服务器密钥必须严格保密,建议使用环境变量存储
- 考虑使用密钥管理系统(KMS)增强安全性
-
错误处理:
- 实现统一的错误处理中间件
- 对429错误实现指数退避重试机制
- 记录详细的错误日志便于排查
-
性能优化:
- 合理缓存频繁访问的数据
- 批量处理相关操作减少请求次数
- 考虑使用WebSocket进行实时更新
-
安全建议:
- 始终使用HTTPS协议
- 定期审计API使用情况
- 实现请求签名增强安全性(高级场景)
通过遵循这些指南,您可以充分发挥Stack Auth API的能力,构建安全可靠的身份验证系统。