定制开发者门户
开发者门户可以基于 API7 Developer Portal Boilerplate 构建。它是一个可定制的 Next.js 参考实现。本指南介绍最常见的定制方式。
本文引用该 Boilerplate,因为它是开发自定义门户的公共参考实现。API7 Enterprise 部署文档也可能引用产品部署所使用的官方前端镜像。
品牌定制
Logo 和 Favicon
将以下文件替换为你组织的资产:
| 资源 | 文件路径 | 用途 |
|---|---|---|
| Favicon | apps/site/app/favicon.ico | 浏览器选项卡图标 |
| Logo | apps/site/public/logo.svg | 所有页面页眉中显示的 Logo |
应用程序名称和描述
更新 config.yaml 以更改门户名称和描述:
app:
name: "Acme API Portal"
desc: "Discover and integrate with Acme APIs"
name 会显示在浏览器标题栏和门户页眉中。desc 用作 SEO 元描述。
主题
该门户使用 Tailwind CSS 和 CSS 自定义属性定义主题样式。编辑 apps/site/app/globals.css 自定义颜色:
:root {
--primary: oklch(0.205 0 0);
--primary-foreground: oklch(0.985 0 0);
--background: oklch(1 0 0);
--foreground: oklch(0.145 0 0);
/* 有关所有可用变量,请参阅 Boilerplate 仓库中的 globals.css */
}
品牌变更(Logo、Favicon 和 CSS)需要重新构建并部署应用程序。修改 config.yaml 后需要重启应用程序。
身份认证定制
电子邮件和密码
在 config.yaml 中控制电子邮件和密码身份认证:
auth:
emailAndPassword:
enabled: true
requireEmailVerification: false
要启用电子邮件验证,请在 apps/site/src/lib/auth/server.ts 中集成电子邮件提供商 SDK。如果没有电子邮件提供商集成,设置 requireEmailVerification: true 将阻止注册,因为无法发送验证电子邮件。
社交登录提供商
在 config.yaml 中添加基于 OAuth 的社交登录提供商:
auth:
socialProviders:
github:
clientId: ${GITHUB_CLIENT_ID}
clientSecret: ${GITHUB_CLIENT_SECRET}
google:
clientId: ${GOOGLE_CLIENT_ID}
clientSecret: ${GOOGLE_CLIENT_SECRET}
向每个提供商注册 OAuth 应用程序以 获取客户端 ID 和密钥。将回调 URL 设置为 https://<PORTAL_DOMAIN>/api/auth/callback/<provider>。
通用 OAuth
对于内置社交登录提供商未涵盖的身份提供商,请使用通用 OAuth 插件。这需要修改 apps/site/src/lib/auth/server.ts。有关详情,请参阅 Better Auth OAuth 文档。
扩展功能
Boilerplate 提供了几个扩展点:
| 扩展点 | 位置 | 描述 |
|---|---|---|
| 页面 | apps/site/app/ | 使用 App Router 添加或修改 Next.js 页面。 |
| 组件 | apps/site/components/ | 创建自定义 UI 组件。 |
| 身份认证逻辑 | apps/site/src/lib/auth/ | 自定义身份认证流程。 |
| API 路由 | apps/site/app/api/ | 添加自定义后端端点。 |