register/page.tsx - 注册页
基本信息
| 属性 | 值 |
|---|---|
| 路径 | src/app/(auth)/register/page.tsx |
| 类型 | Next.js 页面组件 (Server Component) |
| 功能 | 用户注册页面 |
功能描述
提供用户注册功能。当凭证认证未启用或注册功能被禁用时,自动重定向到登录页。
导入依赖
import { Metadata } from "next";
import Link from "next/link";
import { redirect } from "next/navigation";
import { getTranslations } from "next-intl/server";
import { getConfig } from "@/lib/config";
import { AuthContent } from "@/components/auth/auth-content";
元数据
export const metadata: Metadata = {
title: "Register",
description: "Create a new account",
};
辅助函数
getProviders(config)
与登录页相同,提取认证提供者列表。
组件逻辑
主组件: RegisterPage
访问控制:
if (!hasCredentials || !config.auth.allowRegistration) {
redirect("/login");
}
阻止注册的条件:
- 未启用凭证认证(
!hasCredentials) - 注册功能被禁用(
!config.auth.allowRegistration)
UI 结构
Container (flex, min-h, centered)
├── max-w-sm wrapper
│ ├── Header (centered)
│ │ ├── Title: "注册"
│ │ └── Description: registerDescription
│ ├── AuthContent (bordered box)
│ │ └── providers, mode="register"
│ └── Footer Link
│ └── "已有账号?登录" → /login
翻译键值
| 键值 | 用途 |
|---|---|
auth.register | 页面标题 |
auth.registerDescription | 注册说明 |
auth.hasAccount | "已有账号" 文本 |
auth.login | "登录" 链接文本 |
相关组件
AuthContent(@/components/auth/auth-content) - 注册表单主体
路由
| 路径 | 说明 |
|---|---|
/register | 注册页面 |
/login | 登录页面(链接跳转/重定向目标) |
配置依赖
config.auth.providers/config.auth.provider- 认证提供者config.auth.allowRegistration- 是否允许注册
与登录页对比
| 特性 | 登录页 | 注册页 |
|---|---|---|
| 访问控制 | 无限制 | 可能重定向 |
| OAuth 描述 | 动态切换 | 固定描述 |
| 底部链接 | 注册(条件) | 登录(固定) |
| 品牌标识 | 可传递 | 不传递 |