身份验证逻辑Skill authentication-logic

本指南详细介绍了如何使用 Better Auth 库在 Web 应用中实现客户端与服务器端的用户身份验证。内容包括配置方法、登录登出操作、会话管理以及如何保护 API 路由。关键词:身份验证,Better Auth,用户登录,会话管理,API 安全,Next.js。

后端开发 0 次安装 0 次浏览 更新于 3/1/2026

name: authentication-logic description: 使用 Better Auth 进行客户端和服务器端身份验证的指南。

身份验证逻辑

概述

我们使用 Better Auth (better-auth) 来识别用户。

配置

  • 客户端lib/auth-client.ts 导出 authClient
  • 服务器端lib/auth.ts 导出 auth

客户端使用

在客户端组件中使用 authClient 进行登录、登出和检查会话状态。

import { authClient } from "@/lib/auth-client";

// 登录
await authClient.signIn.email({
  email,
  password,
});

// 社交登录
await authClient.signIn.social({
  provider: "google",
  callbackURL: "/onboarding", 
});

// 登出
await authClient.signOut();

服务器端使用

使用 auth.api.getSession 来保护 API 路由或服务器操作。

import { auth } from "@/lib/auth";
import { headers } from "next/headers";

const session = await auth.api.getSession({
  headers: await headers()
});

if (!session) {
  return new Response("Unauthorized", { status: 401 });
}

AuthBar 组件

  • 位于 textbook/src/components/AuthBar/index.tsx
  • 显示用户头像或登录按钮。
  • /api/auth/session(代理 Better Auth 的 Next.js API 路由)获取会话。