Elysia 集成本集成指南假设你正在使用 Elysia 搭配 bun 服务器。 在开始之前,请确保你已经配置了 Better Auth 实例。如果你尚未完成此操作,请查看安装指南。 挂载处理程序 我们需要将处理程序挂载到 Elysia 端点。 import { Elysia } from "elysia"; import { auth } from "./auth"; const app = new Elysia().mount(auth.handler).listen(3000); console.log( `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`, ); CORS 要配置跨域资源共享(CORS),你可以使用 @elysiajs/cors 的 cors 插件。 import { Elysia } from "elysia"; import { cors } from "@elysiajs/cors"; import { auth } from "./auth"; const app = new Elysia() .use( cors({ origin: "http://localhost:3001", methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"], credentials: true, allowedHeaders: ["Content-Type", "Authorization"], }), ) .mount(auth.handler) .listen(3000); console.log( `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`, ); 宏(Macro) 你可以使用宏与resolve在传递给视图之前提供会话和用户信息。 import { Elysia } from "elysia"; import { auth } from "./auth"; // 用户中间件(计算用户和会话并传递给路由) const betterAuth = new Elysia({ name: "better-auth" }) .mount(auth.handler) .macro({ auth: { async resolve({ error, request: { headers } }) { const session = await auth.api.getSession({ headers, }); if (!session) return error(401); return { user: session.user, session: session.session, }; }, }, }); const app = new Elysia() .use(betterAuth) .get("/user", ({ user }) => user, { auth: true, }) .listen(3000); console.log( `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`, ); 这将允许你在所有路由中访问 user 和 session 对象。Express 集成介绍如何将Better Auth与Express框架集成。Nitro 集成介绍如何将Better Auth与Nitro框架集成。