Quickstart
Next.js 快速开始
在 5 分钟内将 Nebutra 集成到你的 Next.js 16 App Router 项目中。
前提条件
- Node.js 22+
- 拥有 OPC 许可证 的 Nebutra 账户(免费)
- 已有 Next.js 16 项目,或创建一个新项目:
npx create-next-app@latest my-app --typescript --tailwind --app
cd my-app第一步:安装 SDK
npm install @nebutra/sdkpnpm add @nebutra/sdk第二步:配置环境变量
在项目根目录创建 .env.local 文件:
# 在 Nebutra 仪表板 → 设置 → API 密钥 中获取
NEBUTRA_API_KEY=nbk_live_xxxxxxxxxxxxxxxxxxxx
NEBUTRA_ORG_ID=org_xxxxxxxxxxxxxxxxxxxx
# 公开密钥——可以安全地暴露给浏览器
NEXT_PUBLIC_NEBUTRA_ORG_ID=org_xxxxxxxxxxxxxxxxxxxx永远不要将 .env.local 提交到版本控制。请将其添加到 .gitignore。
第三步:初始化客户端
创建一个共享的 Nebutra 客户端:
import { createClient } from "@nebutra/sdk";
export const nebutra = createClient({
apiKey: process.env.NEBUTRA_API_KEY!,
orgId: process.env.NEBUTRA_ORG_ID!,
});第四步:通过认证保护路由
使用 Nebutra 代理为 Server Component 添加认证(Next.js 16+ 使用 proxy.ts 替代 middleware.ts):
import { withNebutraAuth } from "@nebutra/sdk/next";
export default withNebutraAuth({
publicRoutes: ["/", "/sign-in", "/sign-up"],
});
export const config = {
matcher: ["/((?!_next|favicon.ico).*)"],
};第五步:在 Server Component 中读取当前用户
import { getAuth } from "@nebutra/sdk/next/server";
export default async function DashboardPage() {
const { user, org } = await getAuth();
if (!user) {
redirect("/sign-in");
}
return (
<div>
<h1>欢迎,{user.firstName}</h1>
<p>组织:{org.name}</p>
<p>套餐:{org.plan}</p>
</div>
);
}第六步:发起第一次 API 调用
import { NextResponse } from "next/server";
import { nebutra } from "@/lib/nebutra";
import { getAuth } from "@nebutra/sdk/next/server";
export async function GET() {
const { org } = await getAuth();
const projects = await nebutra.projects.list({
orgId: org.id,
limit: 20,
});
return NextResponse.json(projects);
}第七步:在操作前检查权限
"use server";
import { requirePermission } from "@nebutra/sdk/next/server";
import { nebutra } from "@/lib/nebutra";
export async function deleteProject(projectId: string) {
// 如果用户缺少 `project:delete` 范围,则抛出 403
await requirePermission("project:delete");
await nebutra.projects.delete(projectId);
}准备就绪
How is this guide?
在 GitHub 上编辑此页面
最后更新于