# @basenative/auth 中文文档

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

版本：3\.3\.0
npm 元数据更新时间：2026-11-03T01:38:19.606Z
中文译文更新时间：2026-11-08T07:22:55.814Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：29.2 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-03-20T05:27:47.413Z
- 最新版本发布：2026-11-03T01:38:19.234Z
- 近 30 天下载量：1874（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

BaseNative apps的认证、会议管理、RBAC和OAuth2/OIDC

## 安装

```sh
npm install @basenative/auth
```

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

## README

# @ aslative/ auth (帮助)

> 会话管理,密码散列,RBAC和OAuth——没有外部依赖性

部分 [基础](https://github.com/DuganLabs/basenative) 生态系统——一个基于信号的网络运行时间超过本土的HTML.

## 安装

```bash
npm install @basenative/auth
```

## 快速启动

```js
import {
  createSessionManager,
  hashPassword,
  verifyPassword,
  defineRoles,
  createGuard,
  sessionMiddleware,
  requireAuth,
} from '@basenative/auth';

// Password hashing (uses node:crypto — no bcrypt dependency)
const hash = await hashPassword('secret123');
const ok = await verifyPassword('secret123', hash); // true

// Session management
const sessions = createSessionManager({ maxAge: 24 * 60 * 60 * 1000 });
const session = await sessions.create({ userId: 42, role: 'admin' });

// RBAC
const roles = defineRoles({
  admin: { permissions: ['read', 'write', 'delete'] },
  editor: { permissions: ['read', 'write'] },
  viewer: { permissions: ['read'] },
});
const guard = createGuard(roles);
guard.can('editor', 'write'); // true
guard.can('viewer', 'write'); // false
```

## API 密码

### 会议

-   `createSessionManager(options?)` ——创建带有可插件存储的会话管理器. 选项 : `store`, (中文(简体) ), `cookieName`, (中文(简体) ), `maxAge`, (中文(简体) ), `secure`, (中文(简体) ), `sameSite`, (中文(简体) ), `httpOnly`。 。 。 .
    -   `.create(data)` ——创建新会话并返回.
    -   `.get(id)` 以身份证获取会话(返回) `null` (如果过期).
    -   `.update(id, data)` 将数据合并到现有的会话中.
    -   `.destroy(id)` 删除会话.
-   `createMemoryStore()` ——内幕会话商店(开发/单程).
-   `createDbStore(db)` - 数据库支持的会话存储使用 `@basenative/db` 适配器.

### 密码

-   `hashPassword(password)` 使用 PBKDF2 的密码 `node:crypto`返回a `Promise<string>`。 。 。 .
-   `verifyPassword(password, hash)` 对照所储存的散列验证密码。 回返a `Promise<boolean>`。 。 。 .

### 非洲区域局

-   `defineRoles(config)` ——定义带有权限数组的角色等级.
-   `createGuard(roles)` —— 创建守护对象 `.can(role, permission)` 检查.

### 中间软件

-   `sessionMiddleware(manager)` 从请求的 cookie 装入会话并附加到 `ctx.state.session`。 。 。 .
-   `requireAuth(options?)` ——以401个答复拒绝未经认证的请求.
-   `login(manager, sessionData, ctx)` ——创建会话,并设置会话 cookie 对应.
-   `logout(manager, ctx)` - 破坏本届会议并清除饼干.

### OAuth 供应商

-   `credentialsProvider(options)` ——用户名/密码认证策略.
-   `oauthProvider(providerName, options)` ——OAuth 2.0流为被命名的提供者.
-   `providers` ——为普通供应商(GitHub,Google等)预设了OAuth设置.

## 许可证

阿帕奇 - 2.0

## 常见问题

### @basenative/auth 是什么？

BaseNative apps的认证、会议管理、RBAC和OAuth2/OIDC

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

在项目目录运行 npm install @basenative/auth，或使用 pnpm add / yarn add / bun add。

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

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

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

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

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

@basenative/auth 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

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

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

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

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

