# @fluixi/auth 中文文档

规范地址：https://npmcn.com/package/%40fluixi/auth/

版本：1\.0\.0-alpha\.108
npm 元数据更新时间：2026-11-07T01:09:00.271Z
中文译文更新时间：2026-11-15T03:17:26.887Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40fluixi/auth
原文对照：https://npmcn.com/package/%40fluixi/auth/?lang=original
项目主页：https://github.com/fluixi/core#readme
源码仓库：https://github.com/fluixi/core

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：142 kB，29 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@fluixi/dom ^1\.0\.0-alpha\.108，better-auth \>=1\.6\.22，@fluixi/core ^1\.0\.0-alpha\.108，@fluixi/start ^1\.0\.0-alpha\.108，@fluixi/server ^1\.0\.0-alpha\.108，@fluixi/reactive ^1\.0\.0-alpha\.108
- 首次发布：2026-07-10T03:16:59.248Z
- 最新版本发布：2026-11-07T01:08:30.207Z
- 近 30 天下载量：2297（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：56（近 12 个月 56 个）

## 中文简介

Fluixi的服务器首个认证——本地绑定在Better Auth: authMiddleware上,需要User/Role/Permission(请求文本,没有令牌解析),SSR种子使用用户/使用会议钩,并保护Route.

## 安装

```sh
npm install @fluixi/auth
```

也可以使用：`pnpm add @fluixi/auth`、`yarn add @fluixi/auth`、`bun add @fluixi/auth`

## README

# @fluixi/奥斯

Fluixi 的服务器第一个认证 : **本地绑定 [更好的认证](https://better-auth.com/)**。 。 。 . 更好的Auth拥有安全原始(密码散列、会话、CSRF、安全饼干, OAuth、2FA/TOTP、各组织、非洲区域局、DB适配器:审计和维护。 这个包 拥有 _Fluixi 整合_ 更好的 Auth 无法提供: 请求文本服务器助手, SSR-种子反应钩子,中件接线和路由保护.

`better-auth` 是一个 **同伴依赖**:绑定器在结构上消耗了它,所以应用程序拥有了版本.

## 服务器( U)`@fluixi/auth/server`(中文(简体) )

```ts
// auth.config.ts
import { betterAuth } from 'better-auth';
import { defineAuth } from '@fluixi/auth/server';
export const auth = defineAuth(betterAuth({ /* db, providers, plugins */ }));
```

```ts
// src/middleware.ts — resolve the session once per request → locals.auth
import { defineMiddleware } from '@fluixi/start';
import { authMiddleware } from '@fluixi/auth/server';
export default defineMiddleware([ authMiddleware() ]);
```

```ts
// src/api/auth/[...all].ts — mount Better Auth
import { mountAuthRoutes } from '@fluixi/auth/server';
export const ALL = mountAuthRoutes(); // (request) => auth.handler(request)
```

```ts
// loaders / server functions — no token parsing, reads request-scoped locals
const user  = await requireUser();            // throws AuthError(401, '/login')
const admin = await requireRole('admin');     // throws AuthError(403)
await requirePermission(() => can(user, 'edit', post));
const maybe = await optionalUser();           // U | null
```

```ts
// API route contracts (@fluixi/api) take a guard instead: it runs before the input is read
// and types `auth` in the handler.
import { route } from '@fluixi/api';
import { member, signedIn } from '@fluixi/auth/server';

export const GET = route({ guard: signedIn(), handler: ({ auth }) => auth.user });
export const DELETE = route({
  guard: member({ roles: ['owner', 'admin'] }), // 403 no_active_organization, not_a_member, forbidden
  handler: ({ auth }) => projects.remove(auth.member.organizationId),
});
```

> 应用程序条目必须转发请求, 所以中间软件本地端到达渲染: `export const render = (url, request) => renderRequestAsync(App, { url, request })`。 。 。 .

## 客户`@fluixi/auth/client`(中文(简体) )

```ts
import { createAuthClient } from 'better-auth/client';
import { createAuthHooks } from '@fluixi/auth/client';

const authClient = createAuthClient({ baseURL: '/api/auth' });
export const { useUser, useSession, useAuth, useSignIn, useSignOut, protectedRoute } =
  createAuthHooks({ client: authClient });
```

```ts
const user = useUser();                 // reactive accessor, SEEDED from SSR (no flash/refetch)
const signIn = useSignIn();
export default protectedRoute(() => <Dashboard/>);          // authed only
export default protectedRoute(Login, { guestOnly: true });  // redirect authed away
export default protectedRoute(Admin, { role: 'admin' });    // role-gated
```

本届会议为 `createIsomorphicStore`: 在服务器上从 `locals.auth`, (中文(简体) ), 序列化为页面,并种子同步在客户端上. 没有认证闪光,没有 后水分调剂. `@fluixi/auth/client` 从未导入服务器引擎或节点 .

## 常见问题

### @fluixi/auth 是什么？

Fluixi的服务器首个认证——本地绑定在Better Auth: authMiddleware上,需要User/Role/Permission\(请求文本,没有令牌解析\),SSR种子使用用户/使用会议钩,并保护Route\.

### 如何安装 @fluixi/auth？

在项目目录运行 npm install @fluixi/auth，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@fluixi/dom（^1\.0\.0-alpha\.108）、@fluixi/core（^1\.0\.0-alpha\.108）、@fluixi/reactive（^1\.0\.0-alpha\.108）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @fluixi/auth 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @fluixi/auth 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @fluixi/auth 可以商用吗？

@fluixi/auth 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @fluixi/auth 的下载量有多少？

根据 npm 官方下载统计，@fluixi/auth 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,297 次，日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @fluixi/auth 还在维护吗？

最新版本 1\.0\.0-alpha\.108 发布于 2026/11/07（8 天前）；至今共发布 56 个版本，其中过去 12 个月发布了 56 个；首次发布于 2026/07/10。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

