Ainative Auth Guide — ainative-auth-guide — AINative API 认证指南
v1.0.0为 AINative API 实现认证功能。适用于:(1) 在 API Key 和 JWT 认证之间选择,(2) 用户注册/登录,(3) 刷新令牌,(4) 实现 OAuth2(LinkedIn/GitHub),(5) 服务端或代理使用 API Key。涵盖邮箱/密码登录、OAuth2 社交登录、API Key 管理和 Next.js 中间件模式。
详细分析 ▾
运行时依赖
版本
- ainative-auth-guide 技能首次发布。- 提供 AINative API 完整认证指南,包括 API Key、JWT、邮箱/密码、OAuth2(LinkedIn/GitHub)和中间件模式。- 包含 Python 和 TypeScript 使用示例,包含逐步注册、登录、令牌管理和社交登录流程。- 列出主要认证端点、错误码和参考文档链接。
安装命令 点击复制
技能文档
认证方法
| 方法 | 使用场景 | 请求头 |
|---|---|---|
| API Key | 服务端、代理、SDK、MCP 工具 | X-API-Key: ak_... |
| Bearer JWT | 用户会话、Web 应用 | Authorization: Bearer |
| OAuth2 | 社交登录(LinkedIn、GitHub) | 标准 OAuth2 流程 |
API Key 认证(最简单)
通过 npx zerodb init 或从仪表板获取密钥。
import requestsresponse = requests.get(
"https://api.ainative.studio/api/v1/public/credits/balance",
headers={"X-API-Key": "ak_your_key"}
)
const res = await fetch("https://api.ainative.studio/api/v1/public/credits/balance", {
headers: { "X-API-Key": "ak_your_key" }
});
邮箱/密码注册与登录
# 注册
resp = requests.post(
"https://api.ainative.studio/api/v1/auth/register",
json={"email": "user@example.com", "password": "securepass", "name": "Alice"}
)
token = resp.json()["access_token"]# 登录
resp = requests.post(
"https://api.ainative.studio/api/v1/auth/login",
json={"email": "user@example.com", "password": "securepass"}
)
access_token = resp.json()["access_token"]
refresh_token = resp.json()["refresh_token"]
JWT 使用
headers = {"Authorization": f"Bearer {access_token}"}
me = requests.get("https://api.ainative.studio/api/v1/users/me", headers=headers).json()
令牌刷新
resp = requests.post(
"https://api.ainative.studio/api/v1/auth/refresh",
json={"refresh_token": refresh_token}
)
new_access_token = resp.json()["access_token"]
注销
requests.post(
"https://api.ainative.studio/api/v1/auth/logout",
headers={"Authorization": f"Bearer {access_token}"}
)
OAuth2 社交登录
# LinkedIn
resp = requests.post(
"https://api.ainative.studio/api/v1/auth/linkedin/callback",
json={"code": oauth_code, "redirect_uri": "https://yourapp.com/callback"}
)# GitHub
resp = requests.post(
"https://api.ainative.studio/api/v1/auth/github/callback",
json={"code": oauth_code, "redirect_uri": "https://yourapp.com/callback"}
)
token = resp.json()["access_token"]
Next.js 中间件
// middleware.ts
import { createMiddleware } from '@ainative/next-sdk/middleware';export const middleware = createMiddleware({
apiKey: process.env.AINATIVE_API_KEY!,
protectedPaths: ['/dashboard', '/api/protected'],
loginPath: '/login',
});
密码重置
# 请求重置邮件
requests.post("https://api.ainative.studio/api/v1/auth/forgot-password", json={"email": "user@example.com"})# 使用邮件中的令牌设置新密码
requests.post("https://api.ainative.studio/api/v1/auth/reset-password", json={"token": "reset_token_from_email", "new_password": "newpassword"})
认证端点
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/auth/register | POST | 创建账户 |
/api/v1/auth/login | POST | 邮箱/密码 → JWT |
/api/v1/auth/logout | POST | 使会话失效 |
/api/v1/auth/refresh | POST | 刷新访问令牌 |
/api/v1/users/me | GET | 当前用户资料 |
/api/v1/auth/verify-email | POST | 验证邮箱地址 |
/api/v1/auth/forgot-password | POST | 发送重置邮件 |
/api/v1/auth/reset-password | POST | 应用新密码 |
/api/v1/auth/linkedin/callback | POST | LinkedIn OAuth2 |
/api/v1/auth/github/callback | POST | GitHub OAuth2 |
错误码
| 状态码 | 含义 |
|---|---|
| 401 | 无效或缺失的令牌/密钥 |
| 403 | 认证有效,但权限不足 |
| 409 | 邮箱已被注册 |
参考资料
src/backend/app/api/v1/endpoints/auth.py— 认证端点实现packages/sdks/nextjs/src/middleware/— Next.js 认证中间件docs/guides/AUTHENTICATION.md— 完整认证指南
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制