跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.

类型

此模块包含核心包的公共类型和接口。

安装

npm install @auth/core

然后,您可以从 @auth/core/types 中导入此子模块。

用法

即使您不使用 TypeScript,像 VS Code 这样的 IDE 也会拾取类型,为您提供更好的开发体验。在您输入时,您将获得有关某些对象/函数外观的建议,有时还会有指向文档、示例和其他宝贵资源的链接。

通常,您不需要从这个模块中导入类型。大多数情况下,当使用 Auth 函数以及可选的 AuthConfig 接口时,其中的所有内容都将被类型化。

💡

Auth 函数中,您不需要使用来自此模块的任何类型。

示例

import { Auth } from "@auth/core"
 
const request = new Request("https://example.com")
const response = await Auth(request, {
  callbacks: {
    jwt(): JWT { // <-- This is unnecessary!
      return { foo: "bar" }
    },
    session(
       { session, token }: { session: Session; token: JWT } // <-- This is unnecessary!
    ) {
      return session
    },
  }
})

资源

AuthConfig

重新导出 AuthConfig

帐户

通常包含有关所用提供者的信息,并扩展了 TokenSet,这是 OAuth 提供者返回的不同令牌。

扩展

属性

access_token?

optional readonly access_token: string;
继承自

Partial.access_token

authorization_details?

optional readonly authorization_details: AuthorizationDetails[];
继承自

Partial.authorization_details

expires_at?

optional expires_at: number;

根据 TokenEndpointResponse.expires_in 计算的值。

它是 TokenEndpointResponse.access_token 过期的绝对时间戳(以秒为单位)。

此值可用于与 TokenEndpointResponse.refresh_token 一起实现令牌轮换。

expires_in?

optional readonly expires_in: number;
继承自

Partial.expires_in

id_token?

optional readonly id_token: string;
继承自

Partial.id_token

provider

provider: string;

此帐户的提供商 ID。例如“google”。请参阅 https://authjs.oauth.ac.cn/reference/core/providers 上的完整列表

providerAccountId

providerAccountId: string;

此值取决于用于创建帐户的提供商类型。

  • oauth/oidc:OAuth 帐户的 ID,从 profile() 回调中返回。
  • 电子邮件:用户的电子邮件地址。
  • 凭据:从 authorize() 回调中返回的 id

refresh_token?

optional readonly refresh_token: string;
继承自

Partial.refresh_token

scope?

optional readonly scope: string;
继承自

Partial.scope

token_type?

optional readonly token_type: Lowercase<string>;

注意:因为值不区分大小写,所以始终以小写形式返回。

继承自

Partial.token_type

类型

type: ProviderType;

此帐户的提供者类型

userId?

optional userId: string;

此帐户所属用户的 ID

查看

https://authjs.oauth.ac.cn/reference/core/adapters#adapteruser


身份验证器

WebAuthn 身份验证器。表示能够对它引用的帐户进行身份验证的实体,包含身份验证器的凭据和相关信息。

查看

https://www.w3.org/TR/webauthn/#authenticator

扩展自

属性

counter

counter: number;

身份验证器使用过的次数。

credentialBackedUp

credentialBackedUp: boolean;

客户端身份验证器是否备份了凭据。

credentialDeviceType

credentialDeviceType: string;

身份验证器的设备类型。

credentialID

credentialID: string;

Base64 编码的凭据 ID。

credentialPublicKey

credentialPublicKey: string;

Base64 编码的凭据公钥。

providerAccountId

providerAccountId: string;

连接到身份验证器的提供者帐户 ID。

transports?

optional transports: null | string;

连接的传输标志。

userId?

optional userId: string;

此身份验证器所属用户的 ID。


CookieOption

文档

属性

name

name: string;

options

options: SerializeOptions;

CookiesOptions

文档

属性

callbackUrl

callbackUrl: Partial<CookieOption>;

csrfToken

csrfToken: Partial<CookieOption>;

nonce

nonce: Partial<CookieOption>;

pkceCodeVerifier

pkceCodeVerifier: Partial<CookieOption>;

sessionToken

sessionToken: Partial<CookieOption>;

state

state: Partial<CookieOption>;

webauthnChallenge

webauthnChallenge: Partial<CookieOption>;

DefaultSession

扩展自

属性

expires

expires: string;

user?

optional user: User;

LoggerInstance

覆盖任何方法,其余方法将使用默认日志记录器。

文档

扩展

属性

debug()

debug: (message, metadata?) => void;
参数
参数类型
messagestring
metadata?unknown
返回值

void

error()

error: (error) => void;
参数
参数类型
错误错误
返回值

void

warn()

warn: (code) => void;
参数
参数类型
codeWarningCode
返回值

void


PagesOptions

属性

error

error: string;

错误页面的路径。

可选的“error”查询参数设置为可用值之一。

默认
"/error"

newUser

newUser: string;

如果设置,新用户将在首次登录时被定向到此处。

signIn

signIn: string;

登录页面的路径。

可选的“error”查询参数设置为可用值之一。

默认
"/signin"

signOut

signOut: string;

verifyRequest

verifyRequest: string;

资料

从您的 OAuth 提供者返回的用户资料。

查看

https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims

可索引的

[claim: string]: unknown

属性

address?

optional address: null | {
  country: null | string;
  formatted: null | string;
  locality: null | string;
  postal_code: null | string;
  region: null | string;
  street_address: null | string;
};

birthdate?

optional birthdate: null | string;

email?

optional email: null | string;

email_verified?

optional email_verified: null | boolean;

family_name?

optional family_name: null | string;

gender?

optional gender: null | string;

given_name?

optional given_name: null | string;

id?

optional id: null | string;

locale?

optional locale: null | string;

middle_name?

optional middle_name: null | string;

name?

optional name: null | string;

nickname?

optional nickname: null | string;

phone_number?

optional phone_number: null | string;

picture?

optional picture: any;

preferred_username?

optional preferred_username: null | string;

profile?

optional profile: null | string;

sub?

optional sub: null | string;

updated_at?

optional updated_at: null | string | number | Date;

website?

optional website: null | string;

zoneinfo?

optional zoneinfo: null | string;

PublicProvider

属性

callbackUrl

callbackUrl: string;

id

id: string;

name

name: string;

signinUrl

signinUrl: string;

type

type: string;

ResponseInternal<Body>

类型参数

类型参数
Body extends string | Record<string, any> | any[] | nullany

属性

body?

optional body: Body;

cookies?

optional cookies: Cookie[];

headers?

optional headers: HeadersInit;

redirect?

optional redirect: string;

status?

optional status: number;

Session

已登录用户的活动会话。

扩展

属性

expires

expires: string;
继承自

DefaultSession.expires

user?

optional user: User;
继承自

DefaultSession.user


主题

更改内置页面的主题。

文档 | 页面

属性

brandColor?

optional brandColor: string;

buttonText?

optional buttonText: string;

colorScheme?

optional colorScheme: "auto" | "dark" | "light";
optional logo: string;

用户

OAuth 提供商的 profile 回调中返回的对象形状,在 jwtsession 回调中可用,或者在使用数据库时 session 回调的第二个参数中可用。

扩展自

属性

email?

optional email: null | string;

id?

optional id: string;

image?

optional image: null | string;

name?

optional name: null | string;

AuthAction

type AuthAction: 
  | "callback"
  | "csrf"
  | "error"
  | "providers"
  | "session"
  | "signin"
  | "signout"
  | "verify-request"
  | "webauthn-options";

Auth.js 支持的操作。每个操作都映射到一个 REST API 端点。某些操作具有 GETPOST 变体,具体取决于操作是否会更改服务器的状态。

  • "callback":
  • "csrf": 返回原始 CSRF 令牌,该令牌存储在 cookie(加密)中。它用于 CSRF 保护,实现 双重提交 cookie 技术。

某些框架具有内置的 CSRF 保护,因此可以禁用此操作。在这种情况下,相应的端点将返回 404 响应。在 skipCSRFCheck 中了解更多信息。⚠ 我们不建议手动禁用 CSRF 保护,除非您知道自己在做什么。

  • "error": 呈现内置错误页面。
  • "providers": 返回所有已配置提供商的客户端安全列表。
  • "session":
    • GET: 如果存在,则返回用户的会话,否则返回 null
    • POST: 更新用户的会话并返回更新后的会话。
  • "signin":
    • GET: 呈现内置登录页面。
    • POST: 启动登录流程。
  • "signout":
    • GET: 呈现内置退出登录页面。
    • POST: 启动退出登录流程。这将使用户的会话失效(删除 cookie,如果数据库中有会话,它也将被删除)。
  • "verify-request": 呈现内置验证请求页面。
  • "webauthn-options":
    • GET: 返回 WebAuthn 身份验证和注册流程的选项。

Awaitable<T>

type Awaitable<T>: T | PromiseLike<T>;

类型参数

类型参数
T

Awaited<T>

type Awaited<T>: T extends Promise<infer U> ? U : T;

类型参数

类型参数
T

ErrorPageParam

type ErrorPageParam: "Configuration" | "AccessDenied" | "Verification";

TODO: 检查这些是否都被使用/正确


SemverString

type SemverString: v${number} | v${number}.${number} | v${number}.${number}.${number};

SignInPageErrorParam

type SignInPageErrorParam: 
  | "Signin"
  | "OAuthSignin"
  | "OAuthCallbackError"
  | "OAuthCreateAccount"
  | "EmailCreateAccount"
  | "Callback"
  | "OAuthAccountNotLinked"
  | "EmailSignin"
  | "CredentialsSignin"
  | "SessionRequired";

TODO: 检查这些是否都被使用/正确


TokenSet

type TokenSet: Partial<TokenEndpointResponse> & {
  expires_at: number;
};

OAuth 提供商返回的不同令牌。其中一些令牌可能以不同的大小写形式提供,但它们指的是相同的值。

类型声明

expires_at?

optional expires_at: number;

access_token 过期时间(以秒为单位)。此值根据 expires_in 值计算。

参见

https://www.ietf.org/rfc/rfc6749.html#section-4.2.2


WebAuthnOptionsResponseBody

type WebAuthnOptionsResponseBody: {
  action: WebAuthnAuthenticate;
  options: PublicKeyCredentialRequestOptionsJSON;
  } | {
  action: WebAuthnRegister;
  options: PublicKeyCredentialCreationOptionsJSON;
};
Auth.js © Balázs Orbán 和团队 -2024