跳至內容
從 NextAuth.js v4 遷移?請閱讀 我們的遷移指南.
API 參考@auth/qwik

@auth/qwik

AuthError

所有 Auth.js 錯誤的基本錯誤類別。它經過最佳化,可透過 logger.error 選項,以格式良好的方式印在伺服器日誌中。

繼承

建構子

new AuthError(message, errorOptions)

new AuthError(message?, errorOptions?): AuthError
參數
參數類型
message?string | ErrorOptions
errorOptions?ErrorOptions
返回

AuthError

覆寫

Error.constructor

屬性

cause?

optional cause: Record<string, unknown> & {
  err: Error;
};
類型宣告
err?
optional err: Error;
覆寫

Error.cause

message

message: string;
繼承自

Error.message

name

name: string;
繼承自

Error.name

stack?

optional stack: string;
繼承自

Error.stack

type

type: ErrorType;

錯誤類型。用於在日誌中識別錯誤。

prepareStackTrace()?

static optional prepareStackTrace: (err, stackTraces) => any;

用於格式化堆疊追蹤的可選覆寫

請參閱

https://v8.dev.org.tw/docs/stack-trace-api#customizing-stack-traces

參數
參數類型
err錯誤
stackTracesCallSite[]
返回

any

繼承自

Error.prepareStackTrace

stackTraceLimit

static stackTraceLimit: number;
繼承自

Error.stackTraceLimit

方法

captureStackTrace()

static captureStackTrace(targetObject, constructorOpt?): void

在目標物件上建立 .stack 屬性

參數
參數類型
targetObjectobject
constructorOpt?Function
返回

void

繼承自

Error.captureStackTrace


CredentialsSignin

可以從憑證提供者的 authorize 回呼中擲回。當 authorize 回呼期間發生錯誤時,可能會發生兩件事

  1. 使用者會重新導向至登入頁面,URL 中有 error=CredentialsSignin&code=credentialscode 是可設定的。
  2. 如果您在處理表單動作的伺服器端框架中擲回此錯誤,則會擲回此錯誤,而不是重新導向使用者,因此您需要處理。

繼承

建構子

new CredentialsSignin(message, errorOptions)

new CredentialsSignin(message?, errorOptions?): CredentialsSignin
參數
參數類型
message?string | ErrorOptions
errorOptions?ErrorOptions
回傳

CredentialsSignin

繼承自

SignInError.constructor

屬性

原因?

optional cause: Record<string, unknown> & {
  err: Error;
};
類型宣告
錯誤?
optional err: Error;
繼承自

SignInError.cause

代碼

code: string;

在重新導向 URL 的 code 查詢參數中設定的錯誤代碼。

⚠ 注意:此屬性將會包含在 URL 中,請確保它不會暗示敏感的錯誤。

如果您需要進行偵錯,完整的錯誤訊息總是會記錄在伺服器上。

一般來說,我們不建議明確提示使用者輸入了錯誤的使用者名稱或密碼,請嘗試使用類似「無效的憑證」之類的訊息。

訊息

message: string;
繼承自

SignInError.message

名稱

name: string;
繼承自

SignInError.name

堆疊?

optional stack: string;
繼承自

SignInError.stack

類型

type: ErrorType;

錯誤類型。用於在日誌中識別錯誤。

繼承自

SignInError.type

種類

static kind: string;
繼承自

SignInError.kind

prepareStackTrace()?

static optional prepareStackTrace: (err, stackTraces) => any;

用於格式化堆疊追蹤的可選覆寫

請參閱

https://v8.dev.org.tw/docs/stack-trace-api#customizing-stack-traces

參數
參數類型
err錯誤
stackTracesCallSite[]
回傳

any

繼承自

SignInError.prepareStackTrace

stackTraceLimit

static stackTraceLimit: number;
繼承自

SignInError.stackTraceLimit

類型

static type: string;

方法

captureStackTrace()

static captureStackTrace(targetObject, constructorOpt?): void

在目標物件上建立 .stack 屬性

參數
參數類型
targetObjectobject
constructorOpt?Function
回傳

void

繼承自

SignInError.captureStackTrace


帳戶

通常包含有關正在使用的供應商的資訊,並擴展了 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: string;

此帳戶的供應商 ID。例如:「google」。請參閱 https://authjs.dev.org.tw/reference/core/providers 上的完整清單

providerAccountId

providerAccountId: string;

這個值取決於用於建立帳戶的供應商類型。

  • oauth/oidc:從 profile() 回呼返回的 OAuth 帳戶 ID。
  • 電子郵件:使用者的電子郵件地址。
  • 憑證:從 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.dev.org.tw/reference/core/adapters#adapteruser


DefaultSession

擴展

屬性

expires

expires: string;

user?

optional user: User;

個人資料

從您的 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;

QwikAuthConfig

設定 QwikAuth$ 方法。

繼承自

屬性

adapter?

optional adapter: Adapter;

您可以使用 adapter 選項傳入您的資料庫适配器。

繼承自

Omit.adapter

basePath?

optional basePath: string;

Auth.js API 端點的基本路徑。

預設值
"/api/auth" in "next-auth"; "/auth" with all other frameworks
繼承自

Omit.basePath

callbacks?

optional callbacks: {
  jwt: (params) => Awaitable<null | JWT>;
  redirect: (params) => Awaitable<string>;
  session: (params) => Awaitable<Session | DefaultSession>;
  signIn: (params) => Awaitable<string | boolean>;
};

回調是非同步函式,您可以使用它們來控制執行動作時會發生的事情。回調非常強大,尤其是在涉及 JSON Web Tokens 的場景中,因為它們允許您在沒有資料庫的情況下實施訪問控制,並與外部資料庫或 API 集成

jwt()?
optional jwt: (params) => Awaitable<null | JWT>;

每當建立 JSON Web Token 時(即在登入時)或更新時(即每次在客戶端存取會話時),都會呼叫此回調。您在此處返回的任何內容都會保存在 JWT 中並轉發到會話回調。您可以在那裡控制應返回給客戶端的內容。其他任何內容都將從您的前端保留。JWT 預設透過您的 AUTH_SECRET 環境變數加密。

session 回調

參數
參數類型描述
params物件-
params.account?null | Account包含有關用於登入的提供者的資訊。
也包括 TokenSet

注意
trigger"signIn""signUp" 時可用
params.isNewUser?布林值已棄用
改用 trigger === "signUp"
params.profile?個人資料從您的提供者返回的 OAuth 個人資料。
(在 OIDC 的情況下,它將是解碼後的 ID Token 或 /userinfo 回應)

注意
trigger"signIn" 時可用。
params.session?any當使用 AuthConfig.session strategy: "jwt" 時,這是資料
透過 useSession().update 方法從客戶端傳送。

⚠ 注意,您應該在使用此資料之前驗證它。
params.tokenJWTtrigger"signIn""signUp" 時,它將是 JWT 的子集,
將包括 nameemailimage

否則,對於後續呼叫,它將是完整的 JWT
params.trigger?"update" | "signIn" | "signUp"檢查為何呼叫 jwt 回調。可能的原因有
- 使用者登入:第一次呼叫回調時,將存在 userprofileaccount
- 使用者註冊:第一次在資料庫中建立使用者(當 AuthConfig.session.strategy 設定為 "database" 時)
- 更新事件:由 useSession().update 方法觸發。
在後者的情況下,trigger 將為 undefined
params.userUser | AdapterUserOAuthConfig.profile 或 CredentialsConfig.authorize 回調的結果。

注意
trigger"signIn""signUp" 時可用。

資源
- 憑證提供者
- 使用者資料庫模型
返回

Awaitable<null | JWT>

redirect()?
optional redirect: (params) => Awaitable<string>;

每當使用者重新導向到回調 URL 時(即在登入或登出時),都會呼叫此回調。預設情況下,只允許與來源位於同一主機上的 URL。您可以使用此回調來自訂該行為。

文件

範例
callbacks: {
  async redirect({ url, baseUrl }) {
    // Allows relative callback URLs
    if (url.startsWith("/")) return `${baseUrl}${url}`
 
    // Allows callback URLs on the same origin
    if (new URL(url).origin === baseUrl) return url
 
    return baseUrl
  }
}
參數
參數類型描述
params物件-
params.baseUrl字串網站的預設基本 URL(可以用作回退)
params.url字串客戶端提供的 URL 作為回調 URL
返回

Awaitable<string>

session()?
optional session: (params) => Awaitable<Session | DefaultSession>;

每當檢查會話時都會呼叫此回調。(即,當呼叫 /api/session 端點時,使用 useSessiongetSession)。返回值將公開給客戶端,因此請小心您在此處返回的內容!如果您想讓客戶端可以使用您透過 JWT 回調新增到令牌的任何內容,您也必須在此處明確返回它。

⚠ 預設情況下,為了提高安全性,只會返回令牌的子集(電子郵件、名稱、圖像)。

只有在使用 jwt 會話策略時,令牌參數才可用,而只有在使用資料庫會話策略時,使用者參數才可用。

jwt 回調

範例
callbacks: {
  async session({ session, token, user }) {
    // Send properties to the client, like an access_token from a provider.
    session.accessToken = token.accessToken
 
    return session
  }
}
參數
參數類型
params{ session: { user: AdapterUser; } & AdapterSession; user: AdapterUser; } & { session: Session; token: JWT; } & { newSession: any; trigger: "update"; }
回傳值

Awaitable<Session | DefaultSession>

signIn()?
optional signIn: (params) => Awaitable<string | boolean>;

控制是否允許使用者登入。回傳 true 會繼續登入流程。回傳 false 或拋出錯誤會停止登入流程,並將使用者重新導向至錯誤頁面。回傳字串會將使用者重新導向至指定的 URL。

未處理的錯誤將會拋出 AccessDenied,並且訊息設定為原始錯誤。

AccessDenied

範例
callbacks: {
 async signIn({ profile }) {
  // Only allow sign in for users with email addresses ending with "yourdomain.com"
  return profile?.email?.endsWith("@yourdomain.com")
}
參數
參數類型描述
params物件-
params.account?null | Account-
params.credentials?Record<string, CredentialInput>如果使用憑證提供者,則包含使用者憑證
params.email?物件如果使用電子郵件提供者,在第一次呼叫時,它會包含一個
verificationRequest: true 屬性,表示正在驗證請求流程中觸發。
當使用者點擊登入連結後調用回呼時,
此屬性將不會出現。您可以檢查 verificationRequest 屬性
以避免將電子郵件傳送到黑名單中的地址或網域,或僅為允許列表中的電子郵件地址明確產生電子郵件。
對於允許列表中的電子郵件地址。
params.email.verificationRequest?布林值-
params.profile?個人資料如果使用 OAuth 提供者,它會包含您的提供者傳回的完整
OAuth 設定檔。
params.userUser | AdapterUser-
回傳值

Awaitable<string | boolean>

繼承自

Omit.callbacks

cookies?

optional cookies: Partial<CookiesOptions>;

您可以覆寫 Auth.js 使用的任何 Cookie 的預設 Cookie 名稱和選項。您可以指定一個或多個具有自訂屬性的 Cookie,遺失的選項將使用 Auth.js 定義的預設值。如果您使用此功能,您可能會想要建立條件行為,以支援在開發和生產組建中設定不同的 Cookie 原則,因為您將選擇退出內建的動態原則。

  • 這是一個進階選項。 進階選項的傳遞方式與基本選項相同,但可能具有複雜的含義或副作用。除非您非常熟悉它們,否則您應該盡量避免使用進階選項
預設值
{}
繼承自

Omit.cookies

debug?

optional debug: boolean;

將 debug 設定為 true 以啟用身份驗證和資料庫操作的偵錯訊息。

預設值
false
繼承自

Omit.debug

events?

optional events: {
  createUser: (message) => Awaitable<void>;
  linkAccount: (message) => Awaitable<void>;
  session: (message) => Awaitable<void>;
  signIn: (message) => Awaitable<void>;
  signOut: (message) => Awaitable<void>;
  updateUser: (message) => Awaitable<void>;
};

事件是不會回傳回應的非同步函式,它們對於稽核記錄很有用。您可以為下面任何一個事件指定處理常式 - 例如,用於偵錯或建立稽核記錄。訊息物件的內容會根據流程而有所不同 (例如,OAuth 或電子郵件身份驗證流程、JWT 或資料庫工作階段等),但通常包含使用者物件和/或 JSON Web Token 的內容以及與事件相關的其他資訊。

預設值
{}
createUser()?
optional createUser: (message) => Awaitable<void>;
參數
參數類型
message物件
message.userUser
回傳值

Awaitable<void>

linkAccount()?
optional linkAccount: (message) => Awaitable<void>;
參數
參數類型
message物件
message.account帳戶
message.profileUser | AdapterUser
message.userUser | AdapterUser
回傳值

Awaitable<void>

session()?
optional session: (message) => Awaitable<void>;

訊息物件會包含下列其中一個,具體取決於您是否使用 JWT 或資料庫持續工作階段

  • token:此工作階段的 JWT。
  • session:來自您的配接器的工作階段物件。
參數
參數類型
message物件
message.sessionSession
message.tokenJWT
回傳值

Awaitable<void>

signIn()?
optional signIn: (message) => Awaitable<void>;

如果使用 credentials 類型的驗證,則使用者是來自您的憑證提供者的原始回應。對於其他提供者,您將從您的配接器取得使用者物件、帳戶,以及使用者是否為您的配接器新使用者的指示。

參數
參數類型
message物件
message.account?null | Account
message.isNewUser?布林值
message.profile?個人資料
message.userUser
回傳值

Awaitable<void>

signOut()?
optional signOut: (message) => Awaitable<void>;

訊息物件會包含下列其中一個,具體取決於您是否使用 JWT 或資料庫持續工作階段

  • token:此工作階段的 JWT。
  • session:來自您的配接器正在結束的工作階段物件。
參數
參數類型
message{ session: undefined | null | void | AdapterSession; } | { token: null | JWT; }
回傳值

Awaitable<void>

updateUser()?
optional updateUser: (message) => Awaitable<void>;
參數
參數類型
message物件
message.userUser
回傳值

Awaitable<void>

繼承自

Omit.events

experimental?

optional experimental: {
  enableWebAuthn: boolean;
};

使用此選項啟用實驗性功能。啟用後,它會在主控台中列印警告訊息。

注意

不保證實驗性功能的穩定性,並且可能會在沒有通知的情況下變更或移除。請謹慎使用。

預設值
{}
enableWebAuthn?
optional enableWebAuthn: boolean;

啟用 WebAuthn 支援。

預設值
false
繼承自

Omit.experimental

jwt?

optional jwt: Partial<JWTOptions>;

如果您未指定 AuthConfig.adapter,則預設會啟用 JSON Web Token。預設會加密 JSON Web Token (JWE)。我們建議您保留此行為。

繼承自

Omit.jwt

logger?

optional logger: Partial<LoggerInstance>;

覆寫任何記錄器層級 ( undefined 層級將使用內建的記錄器),並攔截 NextAuth 中的記錄。您可以使用此選項將 NextAuth 記錄傳送到第三方記錄服務。

範例
// /auth.ts
import log from "logging-service"
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  logger: {
    error(code, ...message) {
      log.error(code, message)
    },
    warn(code, ...message) {
      log.warn(code, message)
    },
    debug(code, ...message) {
      log.debug(code, message)
    }
  }
})
預設值
console
繼承自

Omit.logger

pages?

optional pages: Partial<PagesOptions>;

如果您想要建立自訂登入、登出和錯誤頁面,請指定要使用的 URL。指定的頁面將覆寫對應的內建頁面。

預設值
{}
範例
  pages: {
    signIn: '/auth/signin',
    signOut: '/auth/signout',
    error: '/auth/error',
    verifyRequest: '/auth/verify-request',
    newUser: '/auth/new-user'
  }
繼承自

Omit.pages

providers

providers: Provider[];

用於登入的身份驗證提供者清單 (例如,Google、Facebook、Twitter、GitHub、電子郵件等),順序不限。這可以是內建的提供者之一,或是具有自訂提供者的物件。

預設值
[]
繼承自

Omit.providers

redirectProxyUrl?

optional redirectProxyUrl: string;

設定後,在 OAuth 登入流程中,授權請求的 redirect_uri 將根據此值設定。

如果您的 OAuth 提供者僅支援單一 redirect_uri,或者您想在預覽 URL(例如 Vercel)上使用 OAuth,而您事先不知道最終部署 URL,這會很有用。

該 URL 需要包含完整路徑,直到 Auth.js 初始化的地方。

注意

這將會自動啟用提供者的 state OAuth2Config.checks。

範例
"https://authjs.example.com/api/auth"

您也可以為每個提供者單獨覆寫此設定。

範例
GitHub({
  ...
  redirectProxyUrl: "https://github.example.com/api/auth"
})
預設值

AUTH_REDIRECT_PROXY_URL 環境變數

另請參閱:指南:保護預覽部署

繼承自

Omit.redirectProxyUrl

secret?

optional secret: string | string[];

用於雜湊令牌、簽署 Cookie 和產生加密金鑰的隨機字串。

要產生隨機字串,您可以使用 Auth.js CLI:npx auth secret

注意

您也可以傳遞一個密鑰陣列,在這種情況下,將會使用第一個成功解密 JWT 的密鑰。這對於在不使現有會話失效的情況下輪換密鑰很有用。較新的密鑰應新增到陣列的開頭,這將用於所有新的會話。

繼承自

Omit.secret

session?

optional session: {
  generateSessionToken: () => string;
  maxAge: number;
  strategy: "jwt" | "database";
  updateAge: number;
};

設定您的會話,就像您想使用 JWT 或資料庫一樣,閒置會話過期時間,或在您使用資料庫的情況下限制寫入操作。

generateSessionToken()?
optional generateSessionToken: () => string;

為基於資料庫的會話產生自訂會話令牌。預設情況下,會根據 Node.js 版本產生隨機 UUID 或字串。但是,您可以指定要使用的自訂字串(例如 CUID)。

預設值

根據 Node.js 版本使用 randomUUIDrandomBytes.toHex

返回

字串

maxAge?
optional maxAge: number;

以秒為單位,從現在開始計算的相對時間,屆時會話將過期

預設值
2592000 // 30 days
strategy?
optional strategy: "jwt" | "database";

選擇您想要如何儲存使用者會話。預設值為 "jwt",即會話 Cookie 中的加密 JWT (JWE)。

但是,如果您使用 adapter,我們會將其預設為 "database"。您仍然可以透過明確定義 "jwt" 來強制使用 JWT 會話。

當使用 "database" 時,會話 Cookie 只會包含一個 sessionToken 值,該值用於在資料庫中查找會話。

文件 | Adapter | 關於 JSON Web 令牌

updateAge?
optional updateAge: number;

會話應多久更新一次,以秒為單位。如果設定為 0,則每次都會更新會話。

預設值
86400 // 1 day
繼承自

Omit.session

skipCSRFCheck?

optional skipCSRFCheck: typeof skipCSRFCheck;
繼承自

Omit.skipCSRFCheck

theme?

optional theme: Theme;

變更內建 AuthConfig.pages 的主題。

繼承自

Omit.theme

trustHost?

optional trustHost: boolean;

Auth.js 依賴傳入請求的 host 標頭才能正常運作。因此,此屬性需要設定為 true

請確保您的部署平台安全地設定了 host 標頭。

官方基於 Auth.js 的程式庫將嘗試自動為已知安全設定 host 標頭的某些部署平台(例如:Vercel)設定此值。

繼承自

Omit.trustHost

useSecureCookies?

optional useSecureCookies: boolean;

當設定為 true 時,NextAuth.js 設定的所有 Cookie 只能從 HTTPS URL 存取。為了方便開發人員,此選項在以 http:// 開頭的 URL(例如 https://127.0.0.1:3000)上預設為 false。您可以手動將此選項設定為 false 以停用此安全性功能,並允許從非安全 URL 存取 Cookie(不建議)。

  • 這是一個進階選項。 進階選項的傳遞方式與基本選項相同,但可能具有複雜的含義或副作用。除非您非常熟悉它們,否則您應該盡量避免使用進階選項

HTTP 的預設值為 false,HTTPS 網站的預設值為 true

繼承自

Omit.useSecureCookies


會話

已登入使用者的有效會話。

擴展

屬性

expires

expires: string;
繼承自

DefaultSession.expires

user?

optional user: User;
繼承自

DefaultSession.user


使用者

在 OAuth 提供者的 profile 回調中傳回的物件形狀,可用於 jwtsession 回調,或者在使用資料庫時,可用於 session 回調的第二個參數。

屬性

email?

optional email: null | string;

id?

optional id: string;

image?

optional image: null | string;

name?

optional name: null | string;

GetSessionResult

type GetSessionResult: Promise<{
  cookie: any;
  data: Session | null;
}>;

類型宣告

cookie: any;

data

data: Session | null;

customFetch

const customFetch: unique symbol;
🚫

此選項允許您覆寫提供者使用的預設 fetch 函數,以直接向提供者的 OAuth 端點發出請求。使用不當可能會導致安全問題。

它可以支援公司代理、自訂擷取程式庫、快取探索端點、為測試新增模擬、記錄、為不符合規範的提供者設定自訂標頭/參數等。

範例

import { Auth, customFetch } from "@auth/core"
import GitHub from "@auth/core/providers/github"
 
const dispatcher = new ProxyAgent("my.proxy.server")
function proxy(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {
  return undici(args[0], { ...(args[1] ?? {}), dispatcher })
}
 
const response = await Auth(request, {
  providers: [GitHub({ [customFetch]: proxy })]
})

請參閱


QwikAuth$()

QwikAuth$(qrl, ...rest): {
  onRequest: (req) => Promise<void>;
  useSession: Loader_2<null | Session>;
  useSignIn: Action<{
     failed: undefined;
     fieldErrors: undefined;
     formErrors: undefined;
     } | {
     failed: true;
     fieldErrors: {
        authorizationParams: undefined | string[];
        options: undefined | string[];
        providerId: undefined | string[];
        redirectTo: undefined | string[];
     };
     formErrors: string[];
     }, {
     authorizationParams: string | URLSearchParams | Record<string, string>;
     options: objectOutputType<{
        redirectTo: ZodOptional<ZodString>;
     }, ZodTypeAny, "passthrough">;
     providerId: string;
     redirectTo: string;
  }, false>;
  useSignOut: Action<{
     failed: undefined;
     fieldErrors: undefined;
     formErrors: undefined;
     } | {
     failed: true;
     fieldErrors: {
        redirectTo: undefined | string[];
     };
     formErrors: string[];
     }, {
     redirectTo: string;
  }, false>;
}

初始化 Qwik Auth。

參數

參數類型
qrl(ev) => QwikAuthConfig
rest[]

返回

{
  onRequest: (req) => Promise<void>;
  useSession: Loader_2<null | Session>;
  useSignIn: Action<{
     failed: undefined;
     fieldErrors: undefined;
     formErrors: undefined;
     } | {
     failed: true;
     fieldErrors: {
        authorizationParams: undefined | string[];
        options: undefined | string[];
        providerId: undefined | string[];
        redirectTo: undefined | string[];
     };
     formErrors: string[];
     }, {
     authorizationParams: string | URLSearchParams | Record<string, string>;
     options: objectOutputType<{
        redirectTo: ZodOptional<ZodString>;
     }, ZodTypeAny, "passthrough">;
     providerId: string;
     redirectTo: string;
  }, false>;
  useSignOut: Action<{
     failed: undefined;
     fieldErrors: undefined;
     formErrors: undefined;
     } | {
     failed: true;
     fieldErrors: {
        redirectTo: undefined | string[];
     };
     formErrors: string[];
     }, {
     redirectTo: string;
  }, false>;
}

onRequest()

onRequest: (req) => Promise<void>;
參數
參數類型
reqRequestEventCommon<QwikCityPlatform>
返回

Promise<void>

useSession

useSession: Loader_2<null | Session>;

useSignIn

useSignIn: Action<{
  failed: undefined;
  fieldErrors: undefined;
  formErrors: undefined;
  } | {
  failed: true;
  fieldErrors: {
     authorizationParams: undefined | string[];
     options: undefined | string[];
     providerId: undefined | string[];
     redirectTo: undefined | string[];
  };
  formErrors: string[];
  }, {
  authorizationParams: string | URLSearchParams | Record<string, string>;
  options: objectOutputType<{
     redirectTo: ZodOptional<ZodString>;
  }, ZodTypeAny, "passthrough">;
  providerId: string;
  redirectTo: string;
}, false>;

useSignOut

useSignOut: Action<{
  failed: undefined;
  fieldErrors: undefined;
  formErrors: undefined;
  } | {
  failed: true;
  fieldErrors: {
     redirectTo: undefined | string[];
  };
  formErrors: string[];
  }, {
  redirectTo: string;
}, false>;

範例

plugin@auth.ts
import { QwikAuth } from "@auth/qwik"
import GitHub from "@auth/qwik/providers/github"
 
export const {
  onRequest, useSession, useSignIn, useSignOut
} = QwikAuth$(() => ({ providers: [GitHub] }))

setEnvDefaults()

setEnvDefaults(env, config): void

參數

參數類型
envEnvGetter
configAuthConfig

回傳值

void

Auth.js © Balázs Orbán 及團隊 -2024