类型
此模块包含核心包的公共类型和接口。
安装
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 提供者返回的不同令牌。
扩展
Partial
<TokenEndpointResponse
>
属性
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 一起实现令牌轮换。
见
- https://authjs.oauth.ac.cn/guides/refresh-token-rotation#database-strategy
- https://www.rfc-editor.org/rfc/rfc6749#section-5.1
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;
参数
参数 | 类型 |
---|---|
message | string |
metadata ? | unknown |
返回值
void
error()
error: (error) => void;
参数
参数 | 类型 |
---|---|
错误 | 错误 |
返回值
void
warn()
warn: (code) => void;
参数
参数 | 类型 |
---|---|
code | WarningCode |
返回值
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 [] | null | any |
属性
body?
optional body: Body;
cookies?
optional cookies: Cookie[];
headers?
optional headers: HeadersInit;
redirect?
optional redirect: string;
status?
optional status: number;
Session
已登录用户的活动会话。
扩展
属性
expires
expires: string;
继承自
user?
optional user: User;
继承自
主题
更改内置页面的主题。
属性
brandColor?
optional brandColor: string;
buttonText?
optional buttonText: string;
colorScheme?
optional colorScheme: "auto" | "dark" | "light";
logo?
optional logo: string;
用户
OAuth 提供商的 profile
回调中返回的对象形状,在 jwt
和 session
回调中可用,或者在使用数据库时 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 端点。某些操作具有 GET
和 POST
变体,具体取决于操作是否会更改服务器的状态。
"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;
};