@auth/qwik
AuthError
すべてのAuth.jsエラーの基本エラークラスです。logger.error
オプションを使用して、サーバーログに適切にフォーマットされた方法で出力されるように最適化されています。
継承元
コンストラクタ
new AuthError(message, errorOptions)
new AuthError(message?, errorOptions?): AuthError
パラメーター
パラメーター | 型 |
---|---|
message ? | string | ErrorOptions |
errorOptions ? | ErrorOptions |
戻り値
オーバーライド
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.dokyumento.jp/docs/stack-trace-api#customizing-stack-traces
パラメーター
パラメーター | 型 |
---|---|
err | Error |
stackTraces | CallSite [] |
戻り値
any
継承元
Error.prepareStackTrace
stackTraceLimit
static stackTraceLimit: number;
継承元
Error.stackTraceLimit
メソッド
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void
ターゲットオブジェクトに.stackプロパティを作成します。
パラメーター
パラメーター | 型 |
---|---|
targetObject | object |
constructorOpt ? | Function |
戻り値
void
継承元
Error.captureStackTrace
CredentialsSignin
Credentialsプロバイダーのauthorize
コールバックからスローできます。authorize
コールバック中にエラーが発生すると、2つのことが起こります。
- ユーザーは、URLに
error=CredentialsSignin&code=credentials
が付いたサインインページにリダイレクトされます。code
は設定可能です。 - サーバーサイドでフォームアクションを処理するフレームワークでこのエラーをスローした場合、ユーザーをリダイレクトする代わりにこのエラーがスローされるため、処理する必要があります。
継承元
コンストラクタ
new CredentialsSignin(message, errorOptions)
new CredentialsSignin(message?, errorOptions?): CredentialsSignin
パラメータ
パラメーター | 型 |
---|---|
message ? | string | ErrorOptions |
errorOptions ? | ErrorOptions |
戻り値
継承元
プロパティ
cause?
optional cause: Record<string, unknown> & {
err: Error;
};
型宣言
err?
optional err: Error;
継承元
code
code: string;
リダイレクトURLのcode
クエリパラメータに設定されているエラーコード。
⚠ 注意: このプロパティはURLに含まれるため、機密性の高いエラーを示唆するような内容にしないようにしてください。
完全なエラーは、デバッグが必要な場合、常にサーバーにログ記録されます。
一般的に、ユーザー名またはパスワードが間違っていたかどうかを具体的に示唆することはお勧めしません。「無効な資格情報」のような表現を使用してください。
message
message: string;
継承元
name
name: string;
継承元
stack?
optional stack: string;
継承元
type
type: ErrorType;
エラーの種類。ログでエラーを識別するために使用されます。
継承元
kind
static kind: string;
継承元
prepareStackTrace()?
static optional prepareStackTrace: (err, stackTraces) => any;
スタックトレースのフォーマットのためのオプションのオーバーライド
参照
https://v8.dokyumento.jp/docs/stack-trace-api#customizing-stack-traces
パラメータ
パラメーター | 型 |
---|---|
err | Error |
stackTraces | CallSite [] |
戻り値
any
継承元
stackTraceLimit
static stackTraceLimit: number;
継承元
type
static type: string;
メソッド
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void
ターゲットオブジェクトに.stackプロパティを作成します。
パラメータ
パラメーター | 型 |
---|---|
targetObject | object |
constructorOpt ? | Function |
戻り値
void
継承元
Account
通常、使用されているプロバイダに関する情報を含み、OAuthプロバイダによって返される異なるトークンであるTokenSet
を拡張します。
拡張元
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.dokyumento.jp/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.dokyumento.jp/reference/core/providersを参照してください。
providerAccountId
providerAccountId: string;
この値は、アカウントの作成に使用されているプロバイダの種類によって異なります。
- oauth/oidc:
profile()
コールバックから返されるOAuthアカウントのID。 - email: ユーザーのメールアドレス。
- credentials:
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
type: ProviderType;
このアカウントのプロバイダの種類
userId?
optional userId: string;
このアカウントが属するユーザーのID
参照
https://authjs.dokyumento.jp/reference/core/adapters#adapteruser
DefaultSession
拡張先
プロパティ
expires
expires: string;
user?
optional user: User;
Profile
OAuthプロバイダから返されるユーザー情報。
参照
https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
Indexable
[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$ メソッドを構成します。
継承
Omit
<AuthConfig
,"raw"
>
プロパティ
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トークンを含むシナリオでは、**データベースを使用せずにアクセス制御を実装し、外部データベースまたはAPIと統合する**ことができます。
jwt()?
optional jwt: (params) => Awaitable<null | JWT>;
このコールバックは、JSON Webトークンが作成されるたびに(つまり、サインイン時)または更新されるたびに(つまり、クライアントでセッションにアクセスするたびに)呼び出されます。ここで返すものはすべてJWTに保存され、セッションコールバックに転送されます。そこで、クライアントに返すものを制御できます。その他はフロントエンドから除外されます。JWTは、デフォルトでAUTH_SECRET環境変数を使用して暗号化されます。
パラメーター
パラメーター | 型 | 説明 |
---|---|---|
params | オブジェクト | - |
params.account ? | null | Account | サインインに使用されたプロバイダーに関する情報が含まれています。 TokenSetも含まれています 注記 trigger が "signIn" または "signUp" の場合に利用可能です。 |
params.isNewUser ? | ブール値 | 非推奨trigger === "signUp" を代わりに使用してください。 |
params.profile ? | Profile | プロバイダーから返されたOAuthプロファイル。 (OIDCの場合、デコードされたIDトークンまたは/userinfoレスポンスになります) 注記 trigger が "signIn" の場合に利用可能です。 |
params.session ? | any | AuthConfig.session strategy: "jwt" を使用する場合、これはクライアントからuseSession().update メソッドを介して送信されたデータです。⚠ 注意:使用する前にこのデータを検証する必要があります。 |
params.token | JWT | trigger が "signIn" または "signUp" の場合、JWT のサブセットになり、name 、email 、image が含まれます。それ以外の場合は、後続の呼び出しに対する完全なJWTになります。 |
params.trigger ? | "update" | "signIn" | "signUp" | jwtコールバックが呼び出された理由を確認します。考えられる理由は次のとおりです。 - ユーザーサインイン:コールバックが最初に呼び出されたとき、 user 、profile 、account が存在します。- ユーザーサインアップ:ユーザーがデータベースに初めて作成されます(AuthConfig.session.strategy が "database" に設定されている場合)。- 更新イベント: useSession().update メソッドによってトリガーされます。後者の場合、 trigger は undefined になります。 |
params.user | User | AdapterUser | OAuthConfig.profileまたはCredentialsConfig.authorizeコールバックの結果のいずれかです。 注記 trigger が "signIn" または "signUp" の場合に利用可能です。リソース - クレデンシャルプロバイダー - ユーザーデータベースモデル |
戻り値
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
エンドポイントを呼び出す場合、useSession
または getSession
を使用する場合)。戻り値はクライアントに公開されるため、ここで返すものには注意してください!JWTコールバックを介してトークンに追加したものをクライアントで使用できるようにするには、ここで明示的に返す必要があります。
⚠ デフォルトでは、セキュリティ強化のために、トークンのサブセット(email、name、image)のみが返されます。
token引数はjwtセッション戦略を使用する場合にのみ使用でき、user引数はデータベースセッション戦略を使用する場合にのみ使用できます。
例
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
をスローします。
例
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 ? | オブジェクト | Emailプロバイダーが使用されている場合、最初の呼び出しでは、検証リクエストフローでトリガーされていることを示すverificationRequest: true プロパティが含まれます。ユーザーがサインインリンクをクリックした後にコールバックが呼び出されると、 このプロパティは存在しません。 verificationRequest プロパティをチェックして、ブロックリストのアドレスまたはドメインにメールを送信しないようにするか、許可リストのメールアドレスに対してのみ明示的に生成するようにすることができます。 |
params.email.verificationRequest ? | ブール値 | - |
params.profile ? | Profile | OAuthプロバイダーが使用されている場合、プロバイダーによって返された完全な OAuthプロファイルが含まれます。 |
params.user | User | AdapterUser | - |
戻り値
Awaitable
<string
| boolean
>
継承元
Omit.callbacks
cookies?
optional cookies: Partial<CookiesOptions>;
Auth.jsで使用されるCookieの名前とオプションを上書きできます。カスタムプロパティを持つ1つ以上のCookieを指定でき、欠落しているオプションにはAuth.jsで定義されたデフォルト値が使用されます。この機能を使用する場合は、開発ビルドと本番ビルドで異なるCookieポリシーを設定するための条件付き動作を作成する必要があるでしょう。これは、組み込みの動的ポリシーをオプトアウトするためです。
- ⚠ これは高度なオプションです。高度なオプションは基本オプションと同じ方法で渡されますが、複雑な影響または副作用が発生する可能性があります。非常に使い慣れている場合を除き、高度なオプションの使用は避けるべきです。
デフォルト
{}
継承元
Omit.cookies
debug?
optional debug: boolean;
認証とデータベース操作のデバッグメッセージを有効にするには、debugをtrueに設定します。
- ⚠ カスタムのAuthConfig.loggerを追加した場合は、この設定は無視されます。
デフォルト
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トークンの内容、およびイベントに関連するその他の情報が含まれます。
デフォルト
{}
createUser()?
optional createUser: (message) => Awaitable<void>;
パラメーター
パラメーター | 型 |
---|---|
message | オブジェクト |
message.user | User |
戻り値
Awaitable
<void
>
linkAccount()?
optional linkAccount: (message) => Awaitable<void>;
パラメーター
パラメーター | 型 |
---|---|
message | オブジェクト |
message.account | Account |
message.profile | User | AdapterUser |
message.user | User | AdapterUser |
戻り値
Awaitable
<void
>
session()?
optional session: (message) => Awaitable<void>;
JWTを使用するかどうか、またはデータベースに永続化されたセッションを使用するかどうかによって、メッセージオブジェクトには以下のいずれかが含まれます。
token
: このセッションのJWT。session
: アダプターからのセッションオブジェクト。
パラメーター
パラメーター | 型 |
---|---|
message | オブジェクト |
message.session | Session |
message.token | JWT |
戻り値
Awaitable
<void
>
signIn()?
optional signIn: (message) => Awaitable<void>;
credentials
タイプの認証を使用している場合、ユーザーは資格情報プロバイダーからの生のレスポンスです。他のプロバイダーの場合、アダプター、アカウントからのユーザーオブジェクト、およびユーザーがアダプターに新規であったかどうかを示すインジケーターを取得します。
パラメーター
パラメーター | 型 |
---|---|
message | オブジェクト |
message.account ? | null | Account |
message.isNewUser ? | ブール値 |
message.profile ? | Profile |
message.user | User |
戻り値
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.user | User |
戻り値
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トークンはデフォルトで有効になります。JSON Webトークンはデフォルトで暗号化(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)
}
}
})
- ⚠ 設定されている場合、AuthConfig.debugオプションは無視されます。
デフォルト
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を事前に知らないプレビューURL(Vercelなど)でOAuthを使用する場合に役立ちます。
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など)を指定できます。
デフォルト
randomUUID
またはrandomBytes.toHex
(Node.jsのバージョンによって異なります)
戻り値
文字列
maxAge?
optional maxAge: number;
セッションの有効期限となる、現在からの相対時間(秒単位)
デフォルト
2592000 // 30 days
strategy?
optional strategy: "jwt" | "database";
ユーザーセッションの保存方法を選択します。デフォルトは"jwt"
で、セッションクッキーに暗号化されたJWT(JWE)が使用されます。
ただし、adapter
を使用する場合は、代わりに"database"
がデフォルトになります。"jwt"
を明示的に定義することで、JWTセッションを強制的に使用することもできます。
"database"
を使用する場合、セッションクッキーにはsessionToken
値のみが含まれ、データベース内のセッションの検索に使用されます。
ドキュメント | アダプター | 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によって設定されたすべてのクッキーはHTTPS URLからのみアクセス可能になります。開発者の便宜上、このオプションのデフォルトはhttp://
で始まるURL(例:http://localhost:3000)ではfalse
です。このオプションを手動でfalse
に設定してこのセキュリティ機能を無効にし、クッキーが安全でないURLからアクセスできるようにすることもできます(推奨されません)。
- ⚠ これは高度なオプションです。高度なオプションは基本オプションと同じ方法で渡されますが、複雑な影響または副作用が発生する可能性があります。非常に使い慣れている場合を除き、高度なオプションの使用は避けるべきです。
デフォルトは、HTTPの場合はfalse
、HTTPSサイトの場合はtrue
です。
継承元
Omit.useSecureCookies
セッション
ログインしているユーザーのアクティブなセッション。
拡張
プロパティ
expires
expires: string;
継承元
user?
optional user: User;
継承元
ユーザー
OAuthプロバイダーのprofile
コールバックで返されるオブジェクトの形状。これはjwt
およびsession
コールバック、またはデータベースを使用する場合のsession
コールバックの2番目のパラメーターで使用できます。
プロパティ
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
cookie: any;
data
data: Session | null;
customFetch
const customFetch: unique symbol;
このオプションを使用すると、プロバイダーがプロバイダーのOAuthエンドポイントに直接リクエストを行うために使用するデフォルトのfetch
関数をオーバーライドできます。誤って使用すると、セキュリティ上の問題が発生する可能性があります。
これは、企業プロキシ、カスタムフェッチライブラリ、キャッシュ検出エンドポイントをサポートしたり、テスト用のモックを追加したり、非標準準拠のプロバイダーのカスタムヘッダー/パラメーターを設定したりするために使用できます。
例
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 })]
})
参照
- https://undici.nodejs.org/#/docs/api/ProxyAgent?id=example-basic-proxy-request-with-local-agent-dispatcher
- https://authjs.dokyumento.jp/guides/corporate-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>;
パラメーター
パラメーター | 型 |
---|---|
req | RequestEventCommon <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>;
例
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
パラメーター
パラメーター | 型 |
---|---|
環境変数 | EnvGetter |
config | AuthConfig |
戻り値
void