アダプター
アダプター
アダプターは、データソースからデータを読み書きする関数プロパティ(メソッド)を持つオブジェクトです。これらのメソッドは、Auth.jsが理解できる共通インターフェースにデータレイヤーを正規化する手段だと考えてください。
これがAuth.jsを非常に柔軟にし、あらゆるデータレイヤーで使用できるようにしています。
アダプターメソッドは、次の操作を実行するために使用されます。
- ユーザーの作成/更新/削除
- ユーザーとのアカウントのリンク/リンク解除
- アクティブセッションの処理
- 複数のデバイス間でのパスワードレス認証のサポート
メソッドが実装されていないにもかかわらず、Auth.jsによって呼び出された場合、ユーザーにエラーが表示され、操作は失敗します。
メソッド
createAuthenticator()?
optional createAuthenticator(authenticator): Awaitable<AdapterAuthenticator>
新しい認証子を生成します。
生成に失敗した場合、アダプターはエラーをスローする必要があります。
パラメーター
パラメーター | 型 |
---|---|
authenticator | AdapterAuthenticator |
戻り値
Awaitable
<AdapterAuthenticator
>
createSession()?
optional createSession(session): Awaitable<AdapterSession>
ユーザーのセッションを生成して返します。
こちらも参照してください データベースセッション管理
パラメーター
パラメーター | 型 |
---|---|
session | オブジェクト |
session.expires | 日付 |
session.sessionToken | 文字列 |
session.userId | 文字列 |
戻り値
createUser()?
optional createUser(user): Awaitable<AdapterUser>
データベースにユーザーを生成して返します。
こちらも参照してください ユーザー管理
パラメーター
パラメーター | 型 |
---|---|
user | AdapterUser |
戻り値
createVerificationToken()?
optional createVerificationToken(verificationToken): Awaitable<undefined | null | VerificationToken>
検証トークンを生成して返します。
こちらも参照してください 検証トークン
パラメーター
パラメーター | 型 |
---|---|
verificationToken | VerificationToken |
戻り値
Awaitable
<undefined
| null
| VerificationToken
>
deleteSession()?
optional deleteSession(sessionToken): Promise<void> | Awaitable<undefined | null | AdapterSession>
データベースからセッションを削除します。ログ記録の目的で、このメソッドが削除されるセッションを返すことも推奨されます。
こちらも参照してください データベースセッション管理
パラメーター
パラメーター | 型 |
---|---|
sessionToken | 文字列 |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterSession
>
deleteUser()?
optional deleteUser(userId): Promise<void> | Awaitable<undefined | null | AdapterUser>
パラメータ
パラメーター | 型 |
---|---|
userId | 文字列 |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterUser
>
TODO
このメソッドはまだ呼び出されていません。
こちらも参照してください ユーザー管理
getAccount()?
optional getAccount(providerAccountId, provider): Awaitable<null | AdapterAccount>
プロバイダアカウントIDとプロバイダでアカウントを取得します。
アカウントが見つからない場合、アダプタはnull
を返す必要があります。
パラメータ
パラメーター | 型 |
---|---|
providerAccountId | 文字列 |
プロバイダー | 文字列 |
戻り値
Awaitable
<null
| AdapterAccount
>
getAuthenticator()?
optional getAuthenticator(credentialID): Awaitable<null | AdapterAuthenticator>
credentialIDから認証子を取得します。
認証子が見つからない場合、アダプタはnull
を返す必要があります。
パラメータ
パラメーター | 型 |
---|---|
credentialID | 文字列 |
戻り値
Awaitable
<null
| AdapterAuthenticator
>
getSessionAndUser()?
optional getSessionAndUser(sessionToken): Awaitable<null | {
session: AdapterSession;
user: AdapterUser;
}>
データベースからセッションとユーザーを一括で取得します。
データベースが結合をサポートしている場合は、データベースクエリの数を減らすことをお勧めします。
こちらも参照してください データベースセッション管理
パラメータ
パラメーター | 型 |
---|---|
sessionToken | 文字列 |
戻り値
Awaitable
<null
| { session
: AdapterSession
; user
: AdapterUser
; }>
getUser()?
optional getUser(id): Awaitable<null | AdapterUser>
ユーザーIDを介してデータベースからユーザーを取得します。
こちらも参照してください ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
id | 文字列 |
戻り値
getUserByAccount()?
optional getUserByAccount(providerAccountId): Awaitable<null | AdapterUser>
プロバイダIDと特定のアカウントのユーザーIDを使用して、ユーザーを取得します。
こちらも参照してください ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
providerAccountId | Pick <AdapterAccount , "provider" | "providerAccountId" > |
戻り値
getUserByEmail()?
optional getUserByEmail(email): Awaitable<null | AdapterUser>
ユーザーのメールアドレスを介してデータベースからユーザーを取得します。
こちらも参照してください 検証トークン
パラメータ
パラメーター | 型 |
---|---|
メール | 文字列 |
戻り値
linkAccount()?
optional linkAccount(account): Promise<void> | Awaitable<undefined | null | AdapterAccount>
このメソッドは内部的に呼び出されます(ただし、手動リンクにも使用できます)。データベースにAccount
を作成します。
こちらも参照してください ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
account | AdapterAccount |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterAccount
>
listAuthenticatorsByUserId()?
optional listAuthenticatorsByUserId(userId): Awaitable<AdapterAuthenticator[]>
ユーザーのすべての認証子を取得します。
ユーザーが見つからない場合でも、アダプタは空の配列を返す必要があります。その他の理由で取得に失敗した場合は、アダプタはエラーをスローする必要があります。
パラメータ
パラメーター | 型 |
---|---|
userId | 文字列 |
戻り値
Awaitable
<AdapterAuthenticator
[]>
unlinkAccount()?
optional unlinkAccount(providerAccountId): Promise<void> | Awaitable<undefined | AdapterAccount>
パラメータ
パラメーター | 型 |
---|---|
providerAccountId | Pick <AdapterAccount , "provider" | "providerAccountId" > |
戻り値
Promise
<void
> | Awaitable
<undefined
| AdapterAccount
>
TODO
このメソッドはまだ呼び出されていません。
updateAuthenticatorCounter()?
optional updateAuthenticatorCounter(credentialID, newCounter): Awaitable<AdapterAuthenticator>
認証子のカウンターを更新します。
更新に失敗した場合は、アダプタはエラーをスローする必要があります。
パラメータ
パラメーター | 型 |
---|---|
credentialID | 文字列 |
newCounter | number |
戻り値
Awaitable
<AdapterAuthenticator
>
updateSession()?
optional updateSession(session): Awaitable<undefined | null | AdapterSession>
データベース内のセッションを更新して返します。
こちらも参照してください データベースセッション管理
パラメータ
パラメーター | 型 |
---|---|
session | Partial <AdapterSession > & Pick <AdapterSession , "sessionToken" > |
戻り値
Awaitable
<undefined
| null
| AdapterSession
>
updateUser()?
optional updateUser(user): Awaitable<AdapterUser>
データベース内のユーザーを更新して返します。
こちらも参照してください ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
user | Partial <AdapterUser > & Pick <AdapterUser , "id" > |
戻り値
useVerificationToken()?
optional useVerificationToken(params): Awaitable<null | VerificationToken>
データベースから検証トークンを返し、削除します。そのため、一度だけ使用できます。
こちらも参照してください 検証トークン
パラメータ
パラメーター | 型 |
---|---|
params | オブジェクト |
params.identifier | 文字列 |
params.token | 文字列 |
戻り値
Awaitable
<null
| VerificationToken
>
AdapterAccount
アカウントは、ユーザーとプロバイダ間の接続です。
アカウントには2つの種類があります。
- ユーザーがOAuthプロバイダを使用してサインインすると作成されるOAuth/OIDCアカウント。
Email provider
を使用してユーザーがサインインすると作成されるメールアカウント。
1人のユーザーは複数のアカウントを持つことができます。
拡張
プロパティ
access_token?
optional readonly access_token: string;
継承元
authorization_details?
optional readonly authorization_details: AuthorizationDetails[];
継承元
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;
継承元
id_token?
optional readonly id_token: string;
継承元
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;
継承元
scope?
optional readonly scope: string;
継承元
token_type?
optional readonly token_type: Lowercase<string>;
注記:値は大文字と小文字を区別しないため、常に小文字で返されます。
継承元
type
type: AdapterAccountType;
このアカウントのプロバイダーの種類
オーバーライド
userId
userId: string;
このアカウントが属するユーザーのID
参照
https://authjs.dokyumento.jp/reference/core/adapters#adapteruser
オーバーライド
AdapterAuthenticator
認証子は、ユーザーに割り当てられた資格情報認証を表します。
拡張
プロパティ
counter
counter: number;
認証子が使用された回数。
継承元
credentialBackedUp
credentialBackedUp: boolean;
クライアント認証子が資格情報をバックアップしたかどうか。
継承元
Authenticator
.credentialBackedUp
credentialDeviceType
credentialDeviceType: string;
認証子のデバイスの種類。
継承元
Authenticator
.credentialDeviceType
credentialID
credentialID: string;
Base64 エンコードされた資格情報ID。
継承元
credentialPublicKey
credentialPublicKey: string;
Base64 エンコードされた資格情報の公開鍵。
継承元
Authenticator
.credentialPublicKey
providerAccountId
providerAccountId: string;
認証子に接続されているプロバイダーアカウントID。
継承元
Authenticator
.providerAccountId
transports?
optional transports: null | string;
連結されたトランスポートフラグ。
継承元
userId
userId: string;
認証子のユーザーID。
オーバーライド
AdapterSession
セッションは、ユーザーの現在のサインイン状態に関する情報を保持します。
プロパティ
expires
expires: Date;
セッションの有効期限となる絶対日付。
セッションが有効期限前にアクセスされた場合、SessionOptions.maxAge
で定義されているmaxAge
オプションに基づいて延長されます。 SessionOptions.updateAge
で定義された期間内では、一度しか延長されません。
セッションが有効期限を過ぎた後にアクセスされた場合、非アクティブなセッションをクリーンアップするためにデータベースから削除されます。
sessionToken
sessionToken: string;
"database"
AuthConfig.strategy
オプションを使用する場合、データベース内のセッションを検索するために使用される、ランダムに生成された値です。この値は、クライアント側の安全なHTTP-Only Cookieに保存されます。
userId
userId: string;
アクティブなセッションをデータベース内のユーザーに接続します。
AdapterUser
ユーザーは、アプリケーションにサインインできる人を表します。ユーザーがまだ存在しない場合、アイデンティティプロバイダーから返された情報(プロフィールデータ)を使用して、初めてサインインしたときに作成されます。対応するアカウントも作成され、ユーザーにリンクされます。
Extends
Properties
email: string;
ユーザーのメールアドレス。
Overrides
emailVerified
emailVerified: null | Date;
ユーザーがメールプロバイダーを介してメールアドレスを検証したかどうか。ユーザーがまだメールプロバイダーでサインインしていない場合、または最初の成功したサインインの日付の場合はnull
です。
id
id: string;
ユーザーの一意の識別子。
Overrides
image?
optional image: null | string;
Inherited from
name?
optional name: null | string;
Inherited from
VerificationToken
検証トークンは、ユーザーのメールアドレスを介してユーザーをサインインするために使用される一時的なトークンです。ユーザーがメールプロバイダーでサインインするときに作成されます。ユーザーがメール内のリンクをクリックすると、トークンとメールがサーバーに送り返され、ハッシュ化されてデータベース内の値と比較されます。トークンとメールが一致し、トークンの有効期限がまだ切れていない場合、ユーザーはサインインされます。その後、トークンはデータベースから削除されます。
Properties
expires
expires: Date;
トークンの有効期限となる絶対日付。
identifier
identifier: string;
ユーザーのメールアドレス。
token
token: string;
AuthConfig.secret
値を使用してハッシュ化されたトークン。
AdapterAccountType
type AdapterAccountType: Extract<ProviderType, "oauth" | "oidc" | "email" | "webauthn">;
アカウントの種類。
isDate()
isDate(value): value is string
与えられた値をDate
に解析できるかどうかを判断します。
Parameters
パラメーター | 型 |
---|---|
value | unknown |
Returns
value が文字列の場合