adapter
アダプター
アダプターは、データソースからデータを読み書きする関数プロパティ(メソッド)を持つオブジェクトです。これらのメソッドは、Auth.jsが理解できる共通インターフェースにデータ層を正規化する方法と考えてください。
これにより、Auth.jsは非常に柔軟になり、任意のデータ層で使用できるようになります。
アダプターメソッドは、以下の操作を実行するために使用されます。
- ユーザーの作成/更新/削除
- ユーザーとの間でのアカウントのリンク/リンク解除
- アクティブなセッションの処理
- 複数のデバイスでのパスワードレス認証のサポート
メソッドが実装されていないが、Auth.jsによって呼び出された場合、エラーがユーザーに表示され、操作は失敗します。
メソッド
createAuthenticator()?
optional createAuthenticator(authenticator): Awaitable<AdapterAuthenticator>
新しいオーセンティケーターを作成します。
作成に失敗した場合、アダプターはエラーをスローする必要があります。
パラメーター
パラメーター | 型 |
---|---|
オーセンティケーター | AdapterAuthenticator |
戻り値
Awaitable
<AdapterAuthenticator
>
createSession()?
optional createSession(session): Awaitable<AdapterSession>
ユーザーのセッションを作成し、それを返します。
以下も参照してください:データベースセッション管理
パラメーター
パラメーター | 型 |
---|---|
session | オブジェクト |
session.expires | Date |
session.sessionToken | string |
session.userId | string |
戻り値
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 | string |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterSession
>
deleteUser()?
optional deleteUser(userId): Promise<void> | Awaitable<undefined | null | AdapterUser>
パラメータ
パラメーター | 型 |
---|---|
userId | string |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterUser
>
Todo
このメソッドは現在まだ呼び出されていません。
以下も参照してください:ユーザー管理
getAccount()?
optional getAccount(providerAccountId, provider): Awaitable<null | AdapterAccount>
プロバイダーのアカウントIDとプロバイダーでアカウントを取得します。
アカウントが見つからない場合、アダプターはnull
を返す必要があります。
パラメータ
パラメーター | 型 |
---|---|
providerAccountId | string |
provider | string |
戻り値
Awaitable
<null
| AdapterAccount
>
getAuthenticator()?
optional getAuthenticator(credentialID): Awaitable<null | AdapterAuthenticator>
credentialIDから認証器を返します。
認証器が見つからない場合、アダプターはnull
を返す必要があります。
パラメータ
パラメーター | 型 |
---|---|
credentialID | string |
戻り値
Awaitable
<null
| AdapterAuthenticator
>
getSessionAndUser()?
optional getSessionAndUser(sessionToken): Awaitable<null | {
session: AdapterSession;
user: AdapterUser;
}>
データベースからセッションとユーザーを一度に返します。
データベースが結合をサポートしている場合、データベースクエリの数を減らすことを推奨します。
以下も参照してください:データベースセッション管理
パラメータ
パラメーター | 型 |
---|---|
sessionToken | string |
戻り値
Awaitable
<null
| { session
: AdapterSession
; user
: AdapterUser
; }>
getUser()?
optional getUser(id): Awaitable<null | AdapterUser>
ユーザーIDを使用して、データベースからユーザーを返します。
以下も参照してください:ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
id | string |
戻り値
Awaitable
<null
| AdapterUser
>
getUserByAccount()?
optional getUserByAccount(providerAccountId): Awaitable<null | AdapterUser>
プロバイダーIDと特定のアカウントのユーザーIDを使用して、ユーザーを取得します。
以下も参照してください:ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
providerAccountId | Pick <AdapterAccount , "provider" | "providerAccountId" > |
戻り値
Awaitable
<null
| AdapterUser
>
getUserByEmail()?
optional getUserByEmail(email): Awaitable<null | AdapterUser>
ユーザーのメールアドレスを使用して、データベースからユーザーを返します。
以下も参照してください:検証トークン
パラメータ
パラメーター | 型 |
---|---|
email | string |
戻り値
Awaitable
<null
| AdapterUser
>
linkAccount()?
optional linkAccount(account): Promise<void> | Awaitable<undefined | null | AdapterAccount>
このメソッドは内部的に呼び出されます(ただし、手動リンクに使用することもできます)。データベースにアカウントを作成します。
以下も参照してください:ユーザー管理
パラメータ
パラメーター | 型 |
---|---|
account | AdapterAccount |
戻り値
Promise
<void
> | Awaitable
<undefined
| null
| AdapterAccount
>
listAuthenticatorsByUserId()?
optional listAuthenticatorsByUserId(userId): Awaitable<AdapterAuthenticator[]>
ユーザーのすべての認証器を返します。
ユーザーが見つからない場合でも、アダプターは空の配列を返す必要があります。何らかの理由で取得に失敗した場合、アダプターはエラーをスローする必要があります。
パラメータ
パラメーター | 型 |
---|---|
userId | string |
戻り値
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 | string |
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 | string |
params.token | string |
戻り値
Awaitable
<null
| VerificationToken
>
AdapterAccount
アカウントとは、ユーザーとプロバイダー間の接続です。
アカウントには2つのタイプがあります。
- OAuthプロバイダーでユーザーがサインインしたときに作成されるOAuth/OIDCアカウント。
- Emailプロバイダーでユーザーがサインインしたときに作成されるメールアカウント。
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
ユーザーは、アプリケーションにサインインできる人を表します。ユーザーがまだ存在しない場合は、IDプロバイダーから返された情報(プロファイルデータ)を使用して、初めてサインインしたときに作成されます。対応するアカウントも作成され、ユーザーにリンクされます。
拡張
プロパティ
email: string;
ユーザーのメールアドレス。
オーバーライド
emailVerified
emailVerified: null | Date;
メールプロバイダーを介してユーザーがメールアドレスを認証したかどうか。ユーザーがまだメールプロバイダーでサインインしていない場合、または最初にサインインに成功した日付である場合はnull
です。
id
id: string;
ユーザーの一意の識別子。
オーバーライド
image?
optional image: null | string;
継承元
name?
optional name: null | string;
継承元
VerificationToken
認証トークンは、メールアドレスを介してユーザーをサインインさせるために使用される一時的なトークンです。メールプロバイダーを使用してユーザーがサインインするときに作成されます。ユーザーがメール内のリンクをクリックすると、トークンとメールがサーバーに送り返され、そこでハッシュされ、データベースの値と比較されます。トークンとメールが一致し、トークンがまだ有効期限が切れていない場合、ユーザーはサインインします。その後、トークンはデータベースから削除されます。
プロパティ
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
に解析できるかどうかを判断します
パラメーター
パラメーター | 型 |
---|---|
value | unknown |
戻り値
value is string