メインコンテンツまでスキップ
バージョン: 0.14.0 (最新)

📐 認証スキーマ

スキーマはエンドポイントの検証とOpenAPIメタデータを定義します。セットアップとHTTPワークフローから始めて、このページでリクエスト契約の詳細を確認してください。対応するフィーチャーが各スキーマとルートを構成します。transport固有の更新・ログアウト動作にはCookieユーティリティをご利用ください。

インベントリ

エクスポートリクエスト場所契約内容
passwordSchemaN/ASDKのパスワードパターンを使用する再利用可能なパスワードオブジェクト。
providerSchemaN/A再利用可能な provider および providerId オブジェクト。
credentialsSchemaN/A再利用可能なメール/パスワード認証情報オブジェクト。
identitySchemaBody認証情報またはプロバイダーのID JSON。
loginWithCredentialsSchemaBodyオプションのボディフィンガープリント付き認証情報ログイン。
resendMfaCodeSchemaBodyMFAチャレンジトークン。
verifyMfaCodeSchemaBodyMFAチャレンジトークンとコード。
loginWithOnetimeTokenSchemaBodyワンタイムログイントークン。
registerCredentialsSchemaBody登録認証情報とオプションの招待トークン。
sendVerificationEmailSchemaPath, bodyIDとオプションのボディフィンガープリント。
confirmEmailSchemaBodyメール確認トークン。
changeEmailSchemaPath, bodyIDと新しいメール; ソースヘッダーパラメータはコメントアウト済み。
checkTokenSchemaBodyトークンとオプションの预期ターゲット。
confirmNewEmailSchemaBodyメール変更トークン; ソースヘッダーパラメータはコメントアウト済み。
sendResetPasswordLinkEmailSchemaBodyメールアドレス; ソースヘッダーパラメータはコメントアウト済み。
completePasswordResetSchemaBody新規パスワード; ランタイムではスキーマで検証されないAuthorizationヘッダーが必要です。
changePasswordSchemaPath, bodyID、現在のパスワード、および新規パスワード。
deactivateSchemaBody無効化するID。
activateSchemaBody有効化するID。
refreshTokenCookieSchemaBodyCookieモード用の空のボディ更新。
refreshTokenBearerSchemaBodyBearerモード用更新トークン。
refreshTokenSchemaBodyrefreshTokenBearerSchema の非推奨エイリアス。
logoutCookieSchemaBodyCookieモード用の空のボディログアウト。
logoutBearerSchemaBodyログアウトに使用するBearerモードの更新トークン。
deleteRefreshTokensSchemaPath更新レコードを取り消すID。
共有ソースコンテキストを表示
import {OpenAPIParameter, SchemaDefinition, withSchema} from '../primitives';

const identityIdPathParameter: OpenAPIParameter = {
in: 'path',
name: 'identityId',
required: true,
schema: {
type: 'string',
},
};

const hostHeaderParameter: OpenAPIParameter = {
in: 'header',
name: 'host',
required: true,
schema: {
type: 'string',
},
};

const userAgentHeaderParameter: OpenAPIParameter = {
in: 'header',
name: 'user-agent',
required: true,
schema: {
type: 'string',
},
};

const fingerprintHeaderParameter: OpenAPIParameter = {
in: 'header',
name: 'x-nb-fingerprint',
required: false,
schema: {
type: 'string',
},
};

const authorizationHeaderParameter: OpenAPIParameter = {
in: 'header',
name: 'Authorization',
required: true,
schema: {
type: 'string',
},
};

const defaultPasswordPattern = '^(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9.?/_-]{8,24}$';

詳細

passwordSchema

定義

additionalProperties: false の再利用可能オブジェクト。フィールド: password^(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9.?/_-]{8,24}$ に一致するオプションの文字列です。completePasswordResetSchema で展開されます。ルートやフィーチャーからは直接構成されません。

完全なソースを表示
export const passwordSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
password: {
pattern: defaultPasswordPattern,
type: 'string',
},
},
type: 'object',
};

providerSchema

定義

additionalProperties: false の再利用可能オブジェクト。フィールド: オプションの文字列 provider とオプションの文字列 providerId を持つ; 再利用可能な定義には required 配列はありません。identitySchema で展開されます。ルートやフィーチャーからは直接構成されません。

完全なソースを表示
export const providerSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
provider: {type: 'string'},
providerId: {type: 'string'},
},
type: 'object',
};

credentialsSchema

定義

additionalProperties: false の再利用可能オブジェクトです。ソース順のフィールドは、必須文字列の email、既定値が false の任意の真偽値 emailVerified、必須文字列の password です。identitySchema で展開され、ルートまたはフィーチャーが直接合成することはありません。

完全なソースを表示
export const credentialsSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {type: 'string'},
emailVerified: {default: false, type: 'boolean'},
password: {type: 'string'},
},
required: ['email', 'password'],
type: 'object',
};

identitySchema

定義

追加プロパティを許可せず、emailpassword、または providerproviderId のいずれかを受け取ることを意図した必須の application/json 本文です。ソースでは完全な credentialsSchema を展開してから providerSchema を展開するため、後者が properties を含む重複する最上位キーを上書きします。このエクスポートは現在、認証フィーチャーまたはルートでは合成されません。

完全なソースを表示
export const identitySchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
...credentialsSchema,
...providerSchema,
oneOf: [{required: ['email', 'password']}, {required: ['provider', 'providerId']}],
required: [],
},
},
},
required: true,
},
});

loginWithCredentialsSchema

定義

additionalProperties: false を持つ必須の application/json 本文です。必須文字列の emailpassword、任意の文字列 fingerprint を含みます。使用するルート: loginWithCredentialsRoute使用するフィーチャー: loginWithCredentialsFeature

完全なソースを表示
export const loginWithCredentialsSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {type: 'string'},
fingerprint: {type: 'string'},
password: {type: 'string'},
},
required: ['email', 'password'],
type: 'object',
},
},
},
required: true,
},
});

resendMfaCodeSchema

定義

additionalProperties: false と必須文字列フィールド token を 1 つ持つ、必須の application/json 本文です。使用するルート: resendMfaCodeRoute使用するフィーチャー: resendMfaCodeFeature

完全なソースを表示
export const resendMfaCodeSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
token: {
type: 'string',
},
},
required: ['token'],
type: 'object',
},
},
},
required: true,
},
});

verifyMfaCodeSchema

定義

additionalProperties: false を持つ必須の application/json 本文です。ソースのプロパティ順は必須文字列 code、続いて必須文字列 token であり、required 配列は ['token', 'code'] です。使用するルート: verifyMfaCodeRoute使用するフィーチャー: verifyMfaCodeFeature

完全なソースを表示
export const verifyMfaCodeSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
code: {type: 'string'},
token: {type: 'string'},
},
required: ['token', 'code'],
type: 'object',
},
},
},
required: true,
},
});

loginWithOnetimeTokenSchema

定義

additionalProperties: false と必須文字列 token を持つ、必須の application/json 本文です。使用するルート: loginWithOnetimeTokenRoute使用するフィーチャー: loginWithOnetimeTokenFeature

完全なソースを表示
export const loginWithOnetimeTokenSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
token: {type: 'string'},
},
required: ['token'],
type: 'object',
},
},
},
required: true,
},
});

registerCredentialsSchema

定義

additionalProperties: false を持つ必須の application/json 本文です。文字列フィールドは emailpasswordtoken です。password は常に必須であり、oneOfemailpassword、または tokenpassword のいずれかを追加で必須にします。使用するルート: registerCredentialsRoute使用するフィーチャー: registerCredentialsFeature

完全なソースを表示
export const registerCredentialsSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
oneOf: [{required: ['email', 'password']}, {required: ['token', 'password']}],
properties: {
email: {type: 'string'},
password: {type: 'string'},
token: {type: 'string'},
},
required: ['password'],
type: 'object',
},
},
},
required: true,
},
});

sendVerificationEmailSchema

定義

必須文字列パスパラメーター identityId と、任意の文字列 fingerprint のみを許可する必須の application/json 本文を持ちます。本文オブジェクト自体も必須です。使用するルート: sendVerificationEmailRoute使用するフィーチャー: emailVerificationFeature

完全なソースを表示
export const sendVerificationEmailSchema = withSchema({
parameters: [{...identityIdPathParameter}],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
fingerprint: {type: 'string'},
},
type: 'object',
},
},
},
required: true,
},
});

confirmEmailSchema

定義

additionalProperties: false と必須文字列 token を持つ、必須の application/json 本文です。使用するルート: confirmEmailRoute使用するフィーチャー: confirmEmailFeature

完全なソースを表示
export const confirmEmailSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
token: {type: 'string'},
},
required: ['token'],
type: 'object',
},
},
},
required: true,
},
});

changeEmailSchema

定義

必須文字列パスパラメーター identityId と、追加プロパティを許可しない必須の application/json 本文を持ちます。本文フィールド emailminLength: 1 とパターン \S を持つ必須文字列です。host、user-agent、fingerprint パラメーターはコメントアウトされており、スキーマで検証されません。使用するルート: changeEmailRoute使用するフィーチャー: changeEmailFeature

完全なソースを表示
export const changeEmailSchema = withSchema({
parameters: [
{...identityIdPathParameter},
// TODO: uncomment when withSchema can accept headers
// { ...hostHeaderParameter },
// { ...userAgentHeaderParameter },
// { ...fingerprintHeaderParameter },
],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {minLength: 1, pattern: '\\S', type: 'string'},
},
required: ['email'],
type: 'object',
},
},
},
required: true,
},
});

checkTokenSchema

定義

additionalProperties: false を持つ必須の application/json 本文です。任意の文字列 target の後に必須文字列 token を置きます。使用するルート: checkTokenRoute使用するフィーチャー: checkTokenFeature

完全なソースを表示
export const checkTokenSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
target: {type: 'string'},
token: {type: 'string'},
},
required: ['token'],
type: 'object',
},
},
},
required: true,
},
});

confirmNewEmailSchema

定義

必須文字列 token のみを許可する application/json 本文です。リクエスト本文ラッパー自体は必須としてマークされません。host、user-agent、fingerprint パラメーターはコメントアウトされています。使用するルート: confirmNewEmailRoute使用するフィーチャー: confirmNewEmailFeature

完全なソースを表示
export const confirmNewEmailSchema = withSchema({
// TODO: uncomment when withSchema can accept headers
// parameters: [
// // { ...hostHeaderParameter },
// // { ...userAgentHeaderParameter },
// // { ...fingerprintHeaderParameter },
// ],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {token: {type: 'string'}},
required: ['token'],
type: 'object',
},
},
},
},
});

sendResetPasswordLinkEmailSchema

定義

minLength: 1 とパターン \S を持つ必須文字列 email のみを許可する application/json 本文です。リクエスト本文ラッパー自体は必須としてマークされません。host、user-agent、fingerprint パラメーターはコメントアウトされています。使用するルート: sendResetPasswordLinkEmailRoute使用するフィーチャー: sendResetPasswordLinkEmailFeature

完全なソースを表示
export const sendResetPasswordLinkEmailSchema = withSchema({
// TODO: uncomment when withSchema can accept headers
// parameters: [
// // { ...hostHeaderParameter },
// // { ...userAgentHeaderParameter },
// // { ...fingerprintHeaderParameter },
// ],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {minLength: 1, pattern: '\\S', type: 'string'},
},
required: ['email'],
type: 'object',
},
},
},
},
});

completePasswordResetSchema

定義

application/json 本文は passwordSchema を展開し、password を必須にします。ソースは host、user-agent、fingerprint、Authorization の項目がコメントアウトされているため、空の parameters 配列を宣言します。実行時は引き続き Authorization: Bearer <token> からリセットトークンを読み取ります。使用するルート: completePasswordResetRoute使用するフィーチャー: completePasswordResetFeature

完全なソースを表示
export const completePasswordResetSchema = withSchema({
// TODO: uncomment when withSchema can accept headers
parameters: [
// { ...hostHeaderParameter },
// { ...userAgentHeaderParameter },
// { ...fingerprintHeaderParameter },
// { ...authorizationHeaderParameter },
],
requestBody: {
content: {
'application/json': {
schema: {
...passwordSchema,
required: ['password'],
},
},
},
},
});

changePasswordSchema

定義

必須文字列パスパラメーター identityId を持ちます。application/json 本文は追加プロパティを許可せず、password\S に一致する空でない文字列)と newPassword(既定のパスワードパターンに一致する文字列)を必須とします。本文ラッパー自体は必須としてマークされません。使用するルート: changePasswordRoute使用するフィーチャー: changePasswordFeature

完全なソースを表示
export const changePasswordSchema = withSchema({
parameters: [{...identityIdPathParameter}],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
newPassword: {
pattern: defaultPasswordPattern,
type: 'string',
},
password: {minLength: 1, pattern: '\\S', type: 'string'},
},
required: ['password', 'newPassword'],
type: 'object',
},
},
},
},
});

deactivateSchema

定義

minLength: 1 とパターン \S を持つ必須文字列 identityId のみを許可する application/json 本文です。本文ラッパー自体は必須としてマークされません。host、user-agent、fingerprint、Authorization パラメーターはコメントアウトされています。使用するルート: deactivateRoute使用するフィーチャー: deactivateFeature

完全なソースを表示
export const deactivateSchema = withSchema({
parameters: [
// { ...hostHeaderParameter },
// { ...userAgentHeaderParameter },
// { ...fingerprintHeaderParameter },
// { ...authorizationHeaderParameter },
],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
identityId: {minLength: 1, pattern: '\\S', type: 'string'},
},
required: ['identityId'],
type: 'object',
},
},
},
},
});

activateSchema

定義

minLength: 1 とパターン \S を持つ必須文字列 identityId のみを許可する application/json 本文です。本文ラッパー自体は必須としてマークされません。使用するルート: activateRoute使用するフィーチャー: activateFeature

完全なソースを表示
export const activateSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
identityId: {minLength: 1, pattern: '\\S', type: 'string'},
},
required: ['identityId'],
type: 'object',
},
},
},
},
});

refreshTokenCookieSchema

定義

オプションの application/json Bodyで、スキーマはプロパティなしのオブジェクトかつ additionalProperties: false です。使用されるルート: refreshTokenRoute選択されるフィーチャー: refreshTokenFeatureauthMode'cookie' の場合)。

完全なソースを表示
export const refreshTokenCookieSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {},
type: 'object',
},
},
},
},
});

refreshTokenBearerSchema

定義

必須の文字列 refreshToken のみ允许する application/json Body; ボディラッパーは必須としてマークされません。使用されるルート: refreshTokenRoute選択されるフィーチャー: refreshTokenFeature Cookieモード以外。

完全なソースを表示
export const refreshTokenBearerSchema = withSchema({
// TODO: uncomment when withSchema can accept headers
// parameters: [
// // { ...hostHeaderParameter },
// // { ...userAgentHeaderParameter },
// // { ...fingerprintHeaderParameter },
// ],
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {refreshToken: {type: 'string'}},
required: ['refreshToken'],
type: 'object',
},
},
},
},
});

refreshTokenSchema

定義

refreshTokenBearerSchema の非推奨の正確なエイリアスです。フィールドは追加されず、現在のAuthenticationフィーチャーやルートによって構成されることもありません。

完全なソースを表示
export const refreshTokenSchema = refreshTokenBearerSchema;

logoutCookieSchema

定義

オプションの application/json Bodyで、スキーマはプロパティなしのオブジェクトかつ additionalProperties: false です。使用されるルート: logoutRoute選択されるフィーチャー: logoutFeatureauthMode'cookie' の場合)。

完全なソースを表示
export const logoutCookieSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {},
type: 'object',
},
},
},
},
});

logoutBearerSchema

定義

必須の文字列 refreshToken のみ允许する application/json Body; ボディラッパーは必須としてマークされません。使用されるルート: logoutRoute選択されるフィーチャー: logoutFeature Cookieモード以外。

完全なソースを表示
export const logoutBearerSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {refreshToken: {type: 'string'}},
required: ['refreshToken'],
type: 'object',
},
},
},
},
});

deleteRefreshTokensSchema

定義

必須の文字列パスパラメータ identityId が1つあります。コメントアウトされているhost、user-agent、fingerprintパラメータはスキーマで検証されません。使用されるルート: deleteRefreshTokensRoute使用されるフィーチャー: deleteRefreshTokensFeature

完全なソースを表示
export const deleteRefreshTokensSchema = withSchema({
// TODO: uncomment when withSchema can accept headers
// parameters: [
// // { ...hostHeaderParameter },
// // { ...userAgentHeaderParameter },
// // { ...fingerprintHeaderParameter },
// ],

parameters: [{...identityIdPathParameter}],
});