メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

✅ Commonバリデーター

Commonバリデーターは、標準ルートペイロードに対してクロスドメインの認証・認可ルールを合成します。ファクトリはValidatorを返します。成功したバリデーターは値なしで解決し、失敗するとNodeblocksErrorをスローします。

目録

エクスポート種類入力 / 参照成功条件失敗 / エラー
allバリデーターcomposer1つ以上のバリデーターとルートペイロードすべてのバリデーターが順序通り成功。初めてのスローされたエラーで即座に失敗。
checkIdentityTypeバリデーターファクトリ許可されたタイプキー、authアダプター、アイデンティティコレクション、アイデンティティタイプ設定認証済みアイデンティティが許可された設定済みタイプを持つ。500セットアップ、401トークン、または403アイデンティティ/認可エラー。
isAuthenticatedバリデーターファクトリcontext.authenticate、またはBearerフォールバック選択された認証アダプターがリクエストを受け入れる。認証アダプターエラーを伝播。
isSelfバリデーターファクトリペイロードパスと認証済みアイデンティティターゲットIDが存在し、トークンアイデンティティIDに等しい。401無効トークンまたは403不足/非一致アイデンティティID。
ResourceN/AownsResourceによって受け入れられるコレクションの名前付け。N/A
getResourceByIdクエリヘルパーMongoDBコレクションとパブリックリソースID一致するドキュメントまたはnullResultAsyncで返す。データベースの拒絶はunknownとして返される。
ownsResourceバリデーターファクトリリソース名、所有者パス、リソースIDペイロードパス、authとdbコンテキストフェッチされたリソース所有者がトークンアイデンティティIDに等しい。失敗した前提条件に応じて400401403、または500
someバリデーターcomposer1つ以上のバリデーターとルートペイロード少なくとも1つのバリデーターが成功。最初に収集されたNodeblocksErrorをスロー;非NodeblocksError拒絶は500 Unknown errorになる。

詳細

all

実装

シグネチャ:all(...args: Validator[]): Validator。返されたバリデーターは引数順序で提供された各バリデーターを待機し、最初の拒絶で停止します。引数なしの場合、すぐに成功します。すべてのアクセス条件が満たされる場合に使用します。

checkIdentityType

実装

シグネチャ:checkIdentityType<T extends string>(allowedTypes: [T, ...T[]]): Validatordb.identitiesconfiguration.identity.typeIdsを必要とし、context.authenticateまたはBearerフォールバックを通じて認証し、トークンアイデンティティを読み込み、そのtypeIdを提供されたキーの構成済みIDと比較します。

データベースまたはタイプ構成の欠落は500を;無効なユーザートークンは401を;アイデンティティ検索の失敗、不足のタイプID、または許可されないタイプは403を生成します。Authentication、Category、Invitation、Location、Order、Organization、Product、Profile、Userルートで直接およびsomeを通じて使用されます。

isAuthenticated

実装

シグネチャ:isAuthenticated(): Validator。サービスがアダプターを提供した場合context.authenticate(payload)を呼び出し、そうでない場合はBearerトークンアダプターを呼び出します。返されたトークン情報を検査しません;成功と失敗は選択されたアダプターによって定義されます。AuthenticationルートコンシューマーについてはAuthenticationバリデーターを参照してください。

isSelf

実装

シグネチャ:isSelf<T extends string>(identityIdPathInPayload: [T, ...T[]]): Validator。有効なユーザーアクセストークンを必要とし、呼び出し元が提供した正確なRamdaパスからターゲットアイデンティティIDを読み込み、トークンidentityIdと比較します。不足のターゲットと不一致は403です。ドメインルートコンシューマーについてはIdentityバリデーターを参照してください。

Resource

実装

Resourceは联合型 'chatChannels' | 'chatMessages' | 'orders' | 'profiles' | 'subscriptions' | 'notifications'です。ownsResourceによってサポートされるデータベースコレクション名を記述します。

getResourceById

実装

シグネチャ:getResourceById(collection: Collection, id: string): ResultAsync<WithId<Document> | null, unknown>collection.findOne({ id: String(id) })でクエリを実行し;見つからないレコードは成功したnull、拒絶されたデータベース操作は元のunknownエラーとしてキャプチャされます。SDKは現在これをバリデーター名前空間からエクスポートしますが、ソースではブロックへの将来の変換としてマークされています。

ownsResource

実装

シグネチャ:ownsResource(resource, ownerIdPathInResource, resourceIdPathInPayload): Validator。有効なユーザーアクセストークン、選択されたデータベースコレクション、提供されたペイロードパスのリソースIDを必要とします。getResourceByIdでレコードを読み込み、提供された所有者パスでその所有者を読み込み、その値がトークンidentityIdに等しい場合のみ成功します。

失敗は、前提条件に応じて401 Invalid token500 Resource does not exist400 Invalid resource ID、またはデータベースエラー、不足の所有者ID、所有不一致の場合403です。ドメインラッパーはChat channels/messages、Orders、Profiles、Subscriptions、Notifications用にこの契約を使用します;Chat所有バリデーターを参照してください。

some

実装

シグネチャ:some(...args: Validator[]): ValidatorPromise.allSettledで提供されたすべてのバリデーターを同時に開始し、少なくとも1つが満たされた場合に成功します。すべてが拒絶した場合、引数順序で最初に収集されたエラーをスローします;非NodeblocksError拒絶はNodeblocksError(500, 'Unknown error', 'validator')に置き換えられます。バリデーターがない場合、収集されるエラーがないため成功します。

ルートは管理者または自身、管理者または所有者アクセスなどの代替案のために使用します。コンシューマーにはAuthenticationバリデーターChatバリデーター、および対応するOrder、Product、Profile、Organization、Userルートが含まれます。