📦 Ainative Auth Guide — AI原生认证指南
v1.0.0一站式文档,教你为AINative API接入API Key、JWT、邮箱/密码及OAuth2(LinkedIn/GitHub)等全套认证流程,提供Python与TS示例、Token刷新、登出及Next.js中间件写法,帮助开发者快速安全集成。
详细分析 ▾
运行时依赖
版本
- ainative-auth-guide技能首次发布。 - 为AINative API提供完整认证指导,包括API Key、JWT、邮箱/密码、OAuth2(LinkedIn/GitHub)及中间件模式。 - 附带Python与TypeScript使用示例,逐步演示注册、登录、Token管理、社交登录流程。 - 列出主要认证端点、错误码及参考文档链接。
安装命令
点击复制技能文档
# AINative 身份验证指南 ## 认证方式 | 方法 | 使用场景 | 请求头 | |--------|----------|--------| | API Key | 服务器端、agents、SDK、MCP 工具 | X-API-Key: ak_... | | Bearer JWT | 用户会话、Web 应用 | Authorization: Bearer | | OAuth2 | 社交登录(LinkedIn、GitHub) | 标准 OAuth2 流程 | ## API Key 认证(最简单) 通过 npx zerodb init 或控制台获取密钥。 ``python import requests response = requests.get( "https://api.ainative.studio/api/v1/public/credits/balance", headers={"X-API-Key": "ak_your_key"} ) ` `typescript const res = await fetch("https://api.ainative.studio/api/v1/public/credits/balance", { headers: { "X-API-Key": "ak_your_key" } }); ` ## 邮箱/密码注册与登录 `python # 注册 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 使用 `python headers = {"Authorization": f"Bearer {access_token}"} me = requests.get("https://api.ainative.studio/api/v1/users/me", headers=headers).json() ` ## 刷新令牌 `python resp = requests.post( "https://api.ainative.studio/api/v1/auth/refresh", json={"refresh_token": refresh_token} ) new_access_token = resp.json()["access_token"] ` ## 登出 `python requests.post( "https://api.ainative.studio/api/v1/auth/logout", headers={"Authorization": f"Bearer {access_token}"} ) ` ## OAuth2 社交登录 `python # 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 中间件 `typescript // 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', }); ` ## 重置密码 `python # 请求重置邮件 requests.post("https://api.ainative.studio/api/v1/auth/forgot-password", json={"email": "user@example.com"}) # 使用邮件中的 token 设置新密码 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` — 完整认证指南