アダプター
アダプター
アダプターは、データソースからデータの読み書きを行う関数プロパティ(メソッド)を持つオブジェクトです。これらのメソッドは、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 | 文字列 |
戻り値
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>
ユーザーのメールアドレスを介してデータベースからユーザーを取得します。
こちらも参照してください 検証トークン
パラメータ
パラメーター | 型 |
---|---|
メール | 文字列 |
戻り値
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/OIDCアカウント:ユーザーがOAuthプロバイダーでサインインしたときに作成されます。
- メールアカウント:ユーザーがメールプロバイダーでサインインしたときに作成されます。
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オンリーCookieに保存されます。
userId
userId: string;
アクティブなセッションをデータベース内のユーザーに接続します。
AdapterUser
ユーザーは、アプリケーションにサインインできる人を表します。ユーザーがまだ存在しない場合、アイデンティティプロバイダーによって返された情報(プロファイルデータ)を使用して、初めてサインインしたときに作成されます。対応するアカウントも作成され、ユーザーにリンクされます。
継承元
プロパティ
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 が文字列の場合