首页
/ Stack Auth项目REST API全面指南

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:限制最严格,确保系统安全

当触发速率限制时,响应头会包含重置时间信息。

最佳实践建议

  1. 密钥管理

    • 客户端密钥可以公开,但建议定期轮换
    • 服务器密钥必须严格保密,建议使用环境变量存储
    • 考虑使用密钥管理系统(KMS)增强安全性
  2. 错误处理

    • 实现统一的错误处理中间件
    • 对429错误实现指数退避重试机制
    • 记录详细的错误日志便于排查
  3. 性能优化

    • 合理缓存频繁访问的数据
    • 批量处理相关操作减少请求次数
    • 考虑使用WebSocket进行实时更新
  4. 安全建议

    • 始终使用HTTPS协议
    • 定期审计API使用情况
    • 实现请求签名增强安全性(高级场景)

通过遵循这些指南,您可以充分发挥Stack Auth API的能力,构建安全可靠的身份验证系统。