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

✅ プロダクトバリデーター

プロダクトルートは、以下の共通バリデーターファクトリーを組み合わせます。各ファクトリーは、ルートパイプラインの実行前に注入されたルートペイロード/コンテキストを使用します。

一覧

バリデーター読み取る値成功条件失敗 / エラー利用箇所
isAuthenticated()context.authenticate(デフォルトは getBearerTokenInfo)とリクエストトランスポート構成済みアダプターがリクエストを認証します。共通の無効/欠落トークン契約: 401createProductRoutecreateProductBatchRouteupdateProductBatchRoutedeleteProductBatchRouteupdateProductRoutedeleteProductRoutecopyProductRoutecopyProductBatchRoutegetProductImageUploadUrlRoutecreateProductImageRoutedeleteProductImageRoutecreateProductVariantRoutegetProductVariantRouteupdateProductVariantRoutedeleteProductVariantRoutecreateProductVariantBulkRouteupdateProductVariantBulkRoutedeleteProductVariantBulkRoutefindProductsByOrganizationIdRoutegetProductLikersRoute
checkIdentityType(['admin'])context.db.identitiesconfiguration.identity.typeIds、トークンのアイデンティティタイプが構成済みの admin タイプ ID と一致します。DB/構成の欠落は 500、無効なトークンは 401、検索/タイプ/認可の失敗は 403createProductRoutecreateProductBatchRouteupdateProductBatchRoutedeleteProductBatchRouteupdateProductRoutedeleteProductRoutecopyProductRoutecopyProductBatchRoutegetProductImageUploadUrlRoutecreateProductImageRoutedeleteProductImageRoutecreateProductVariantRouteupdateProductVariantRoutedeleteProductVariantRoutecreateProductVariantBulkRouteupdateProductVariantBulkRoutedeleteProductVariantBulkRoutegetProductLikersRoute
hasOrgRolecontext.db.organizationsconfiguration.organization.roles、トークンのアイデンティティ、組織パス呼び出し元が owneradminmember のいずれかです。DB/構成の欠落は 500、トークンは 401、ID は 400、認可は 403findProductsByOrganizationIdRoute

詳細

isAuthenticated()

実装

シグネチャ: isAuthenticated(): ValidatorisAuthenticated() として呼び出され、context.authenticate(payload) を実行します。アダプターが注入されない場合のデフォルトは getBearerTokenInfo です。プロダクトサービスは、省略された authMode または 'bearer' に Bearer 認証を、'cookie' には Cookie 認証を注入します。Cookie モードにはホスト側の Cookie 解析が必要です。無効または欠落した認証は 401 として報告されます。

利用箇所: createProductRoutecreateProductBatchRouteupdateProductBatchRoutedeleteProductBatchRouteupdateProductRoutedeleteProductRoutecopyProductRoutecopyProductBatchRoutegetProductImageUploadUrlRoutecreateProductImageRoutedeleteProductImageRoutecreateProductVariantRoutegetProductVariantRouteupdateProductVariantRoutedeleteProductVariantRoutecreateProductVariantBulkRouteupdateProductVariantBulkRoutedeleteProductVariantBulkRoutefindProductsByOrganizationIdRoutegetProductLikersRoute

checkIdentityType(['admin'])

実装

シグネチャ: checkIdentityType(['admin']): Validator。すべてのプロダクト利用箇所は checkIdentityType(['admin']) を呼び出します。context.db.identitiesconfiguration.identity.typeIds を必要とし、ペイロードを認証してトークンのアイデンティティを読み込み、その typeIdconfiguration.identity.typeIds.admin と比較します。依存関係の欠落には 500、無効なユーザーアクセストークンには 401、アイデンティティ検索・タイプ欠落・認可失敗には 403 をスローします。

利用箇所: createProductRoutecreateProductBatchRouteupdateProductBatchRoutedeleteProductBatchRouteupdateProductRoutedeleteProductRoutecopyProductRoutecopyProductBatchRoutegetProductImageUploadUrlRoutecreateProductImageRoutedeleteProductImageRoutecreateProductVariantRouteupdateProductVariantRoutedeleteProductVariantRoutecreateProductVariantBulkRouteupdateProductVariantBulkRoutedeleteProductVariantBulkRoutegetProductLikersRoute

hasOrgRole

実装

プロダクトルートは hasOrgRole(['owner', 'admin', 'member'], ['params', 'requestParams', 'organizationId']) を呼び出します。ペイロードを認証し、その組織を読み込み、呼び出し元のメンバーシップロールを configuration.organization.roles と比較します。ルートでは checkIdentityType ではなく isAuthenticated() に続いて実行されます。データベース/構成の欠落には 500、無効なトークンには 401、組織 ID 欠落には 400、検索・メンバーシップ・ロールの失敗には 403 をスローします。

利用箇所: findProductsByOrganizationIdRoute