@dbx-tools/shared-auth

中文文档
0.9.206发布于 2026/11/11Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.4万

Browser-safe passwordless and Databricks authentication schemas and types

原始使用文档
文档目录5 节
  1. Read authentication status
  2. Build a profile selector
  3. Use browser sign-in helpers
  4. Runtime boundary
  5. Package exports

@dbx-tools/shared-auth

Validate passwordless sign-in, passkey, Databricks profile, and resolved-client data at browser and server boundaries. The package also provides browser helpers for the routes owned by @dbx-tools/auth-gate.

Read authentication status

import { authStatusSchema } from "@dbx-tools/shared-auth";

const response = await fetch("/api/email/auth/status", { credentials: "include" });
const status = authStatusSchema.parse(await response.json());

if (status.enabled && !status.authenticated) {
  showSignIn();
}

Use the request, verification, logout, and status schemas when custom UI or transport code calls the auth gate directly.

Build a profile selector

Profile summaries never include tokens or client secrets. Validate values before rendering or persisting a selection:

import {
  databricksProfileListSchema,
  databricksProfileSelectionSchema,
} from "@dbx-tools/shared-auth";

export function selectFirstProfile(input: unknown) {
  const profiles = databricksProfileListSchema.parse(input);
  return databricksProfileSelectionSchema.parse({
    kind: "profile",
    profile: profiles[0]!.name,
  });
}

Use { kind: "ambient" } when the consuming runtime should choose its normal Databricks authentication source.

Use browser sign-in helpers

The browser module requests and verifies email one-time passwords (OTPs), starts passkey sign-in or enrollment, manages enrolled passkeys, reads gate status, and logs out through the server-provided same-origin redirect.

import { requestEmailOtp, verifyEmailOtp } from "@dbx-tools/shared-auth/browser";

export async function requestCode(email: string) {
  return requestEmailOtp(email);
}

export async function submitCode(email: string, code: string, name: string) {
  return verifyEmailOtp(email, code, name);
}

Browser helpers use same-origin /api/email/auth routes and include the session cookie. Email one-time passwords and logout require the auth-gate server routes. Passkey operations also require a browser with WebAuthn support. A direct auth runtime mounted elsewhere must use the same base path before these helpers can call it.

Runtime boundary

The Zod schemas and secret-free profile types are safe for shared code. The ./browser subpath performs browser network and WebAuthn operations. This package doesn't resolve credentials, mint Databricks tokens, or register server routes. Use @dbx-tools/auth for Databricks credential resolution and @dbx-tools/auth-gate for passwordless server routes.

Package exports

  • auth: validates passwordless gate requests and responses.
  • browser: performs email OTP, passkey, status, and logout operations.
  • config: defines Databricks authentication and target values.
  • profile: validates secret-free profile lists and selections.
  • client: validates resolved, secret-free Databricks client information.

版本与发布记录

@dbx-tools/shared-auth 共发布 227 个版本,首次发布于 2026/08/08;过去 12 个月发布了 227 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.206latest2026/11/11今天
0.9.2052026/11/111 天前
0.9.2042026/11/101 天前
0.9.2032026/11/074 天前
0.9.2022026/11/065 天前
0.9.2012026/11/056 天前

关于 @dbx-tools/shared-auth 的常见问题

@dbx-tools/shared-auth 是什么?

Browser-safe passwordless and Databricks authentication schemas and types

如何安装 @dbx-tools/shared-auth?

在项目目录运行 npm install @dbx-tools/shared-auth,或使用 pnpm add / yarn add / bun add。

@dbx-tools/shared-auth 支持 TypeScript 吗?

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

@dbx-tools/shared-auth 支持 ESM 还是 CommonJS?

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

@dbx-tools/shared-auth 可以商用吗?

@dbx-tools/shared-auth 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dbx-tools/shared-auth 的下载量有多少?

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

@dbx-tools/shared-auth 还在维护吗?

最新版本 0.9.206 发布于 2026/11/11(今天);至今共发布 227 个版本,其中过去 12 个月发布了 227 个;首次发布于 2026/08/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。