diff --git a/README.md b/README.md
index de12626..8af32f4 100644
--- a/README.md
+++ b/README.md
@@ -130,11 +130,24 @@ pnpm turbo
"email": "user@example.com",
"username": "username",
"admin": false,
+ "moderator": false,
"avatar_url": "https://example.com/avatar.jpg",
- "name": "User Name"
+ "name": "User Name",
+ "groups": ["group1", "group2"]
}
```
+**响应字段说明:**
+
+- `id`: 用户唯一标识
+- `email`: 用户邮箱
+- `username`: 用户名
+- `admin`: 是否是管理员
+- `moderator`: 是否是版主
+- `avatar_url`: 头像地址
+- `name`: 用户昵称
+- `groups`: 用户所属的论坛用户组列表
+
### 使用流程
1. 将用户重定向到授权页面(`/oauth/authorize`)。
diff --git a/src/app/()/page.tsx b/src/app/()/page.tsx
index eeec66a..dcaa4fa 100644
--- a/src/app/()/page.tsx
+++ b/src/app/()/page.tsx
@@ -1,5 +1,6 @@
import dynamic from "next/dynamic";
import Link from "next/link";
+import { ArrowRight } from "lucide-react";
import { Button } from "@/components/ui/button";
import { NavBar } from "@/components/layout/nav-bar";
@@ -12,42 +13,139 @@ const DynamicLogo = dynamic(() => import("@/components/dynamic-logo"), {
export default function IndexPage() {
return (
-
+
-
-
-
- Q58 Connect
-
-
- Q58 Connect 是Q58论坛基于 Discourse SSO 身份认证的 OAuth 2.0
- 服务。通过Q58 Connect
- 认证服务,将您的Q58账号与第三方应用进行安全、便捷的集成。
-
-
-
-
-
-
-
-
+
+ {/* Hero Section */}
+
+
+
+ Q58 Connect
+
+
+ 基于 Discourse SSO 的 OAuth
+ 认证服务,让用户使用论坛账号快速登录您的应用
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Features Section */}
+
+
+
+
+ 使用方法
+
+
+ 只需几个简单步骤,即可在您的应用中集成 Q58 论坛的用户系统
+
+
+
+
+
+ {/* Step 1 */}
+
+
+ 1
+
+
+ 创建应用
+
+
+ 登录后在控制台创建您的应用,获取 Client ID 和 Client Secret
+
+
+
+ {/* Step 2 */}
+
+
+ 2
+
+
+ 集成代码
+
+
+ 按照文档说明,在您的应用中集成 OAuth 2.0 认证流程
+
+
+
+ {/* Step 3 */}
+
+
+ 3
+
+
+ 开始使用
+
+
+ 用户可以使用论坛账号一键登录您的应用,无需重新注册
+
+
+
+
+
+ {/* API Example */}
+
+
+
示例代码
+
+
+ 重要提示:{" "}
+ 授权请求必须通过浏览器重定向实现,不能使用 AJAX/Fetch
+ 等方式直接请求。
+
+
+
+ {`// 1. 重定向到授权页面(必须通过浏览器重定向,不能使用 AJAX/Fetch)
+window.location.href = 'https://connect.q58.pro/oauth/authorize?' + new URLSearchParams({
+ response_type: 'code',
+ client_id: 'your_client_id',
+ redirect_uri: 'https://your-app.com/callback'
+});
+
+// 2. 在回调页面获取访问令牌
+const response = await fetch('https://connect.q58.pro/api/oauth/access_token', {
+ method: 'POST',
+ body: new URLSearchParams({
+ code: '授权码',
+ redirect_uri: 'https://your-app.com/callback'
+ })
+});
+const { access_token } = await response.json();
+
+// 3. 获取用户信息
+const userInfo = await fetch('https://connect.q58.pro/api/oauth/user', {
+ headers: {
+ 'Authorization': \`Bearer \${access_token}\`
+ }
+}).then(res => res.json());`}
+
+
+
+