diff --git a/changes.md b/changes.md index d0036a71175..b6b5f559135 100644 --- a/changes.md +++ b/changes.md @@ -13,6 +13,10 @@ - added type `CustomerAddCustomerGroupAssignmentAction` - added type `CustomerRemoveCustomerGroupAssignmentAction` - added type `CustomerSetCustomerGroupAssignmentsAction` +- added type `ExpiredCustomerEmailTokenError` +- added type `ExpiredCustomerPasswordTokenError` +- added type `GraphQLExpiredCustomerEmailTokenError` +- added type `GraphQLExpiredCustomerPasswordTokenError` - added type `BaseEvent` - added type `CheckoutOrderCreationFailedEvent` - added type `CheckoutPaymentAuthorizationCancelledEvent` @@ -129,7 +133,18 @@ - added property `inheritedStores` to type `Division` - added property `discountTypeCombination` to type `Cart` - added property `customerGroupAssignments` to type `Customer` +- added property `invalidateOlderTokens` to type `CustomerCreateEmailToken` +- added property `invalidateOlderTokens` to type `CustomerCreatePasswordResetToken` - added property `customerGroupAssignments` to type `CustomerDraft` +- added property `invalidateOlderTokens` to type `CustomerToken` +- added property `value` to type `CustomerEmailTokenCreatedMessage` +- added property `invalidateOlderTokens` to type `CustomerEmailTokenCreatedMessage` +- added property `value` to type `CustomerPasswordTokenCreatedMessage` +- added property `invalidateOlderTokens` to type `CustomerPasswordTokenCreatedMessage` +- added property `value` to type `CustomerEmailTokenCreatedMessagePayload` +- added property `invalidateOlderTokens` to type `CustomerEmailTokenCreatedMessagePayload` +- added property `value` to type `CustomerPasswordTokenCreatedMessagePayload` +- added property `invalidateOlderTokens` to type `CustomerPasswordTokenCreatedMessagePayload` - added property `discountTypeCombination` to type `StagedOrder` - added property `discountTypeCombination` to type `Order` - added property `priceCustomerGroupAssignments` to type `ProductSearchProjectionParams` diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailConfirmTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailConfirmTest.php index 6d586f7ea8a..f77e50b2979 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailConfirmTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailConfirmTest.php @@ -148,7 +148,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyCustomersEmailConfirmPost_401' => [ + 'ByProjectKeyCustomersEmailConfirmPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -156,9 +156,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyCustomersEmailConfirmPost_403' => [ + 'ByProjectKeyCustomersEmailConfirmPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -166,9 +166,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyCustomersEmailConfirmPost_404' => [ + 'ByProjectKeyCustomersEmailConfirmPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -176,7 +176,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 404 + 403 ], 'ByProjectKeyCustomersEmailConfirmPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailTokenByEmailTokenTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailTokenByEmailTokenTest.php index 909b25ded50..4fa630a3393 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailTokenByEmailTokenTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersEmailTokenByEmailTokenTest.php @@ -160,7 +160,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_401' => [ + 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -168,9 +168,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 401 + 404 ], - 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_403' => [ + 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -178,9 +178,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 403 + 401 ], - 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_404' => [ + 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -188,7 +188,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 404 + 403 ], 'ByProjectKeyCustomersEmailTokenByEmailTokenGet_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordResetTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordResetTest.php index bb8f86cce68..999f0789747 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordResetTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordResetTest.php @@ -148,7 +148,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyCustomersPasswordResetPost_401' => [ + 'ByProjectKeyCustomersPasswordResetPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -156,9 +156,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyCustomersPasswordResetPost_403' => [ + 'ByProjectKeyCustomersPasswordResetPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -166,9 +166,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyCustomersPasswordResetPost_404' => [ + 'ByProjectKeyCustomersPasswordResetPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -176,7 +176,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 404 + 403 ], 'ByProjectKeyCustomersPasswordResetPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordTokenByPasswordTokenTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordTokenByPasswordTokenTest.php index 761733dea31..1afb13a2bb4 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordTokenByPasswordTokenTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyCustomersPasswordTokenByPasswordTokenTest.php @@ -160,7 +160,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_401' => [ + 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -168,9 +168,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 401 + 404 ], - 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_403' => [ + 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -178,9 +178,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 403 + 401 ], - 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_404' => [ + 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -188,7 +188,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 404 + 403 ], 'ByProjectKeyCustomersPasswordTokenByPasswordTokenGet_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmTest.php index c5d7bf1dee5..3c9e934915f 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmTest.php @@ -152,7 +152,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -161,9 +161,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -172,9 +172,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -183,7 +183,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailConfirmPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenTest.php index de1487474b7..286d659784f 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenTest.php @@ -165,7 +165,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -174,9 +174,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -185,9 +185,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -196,7 +196,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withEmailToken("emailToken") ->get(); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyCustomersEmailTokenByEmailTokenGet_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetTest.php index 6945e6dee7c..45d51500003 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetTest.php @@ -152,7 +152,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -161,9 +161,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -172,9 +172,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -183,7 +183,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->passwordReset() ->post(null); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordResetPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenTest.php index 301f892f8c7..71d8730eb0c 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenTest.php @@ -165,7 +165,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -174,9 +174,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -185,9 +185,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -196,7 +196,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->withPasswordToken("passwordToken") ->get(); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyCustomersPasswordTokenByPasswordTokenGet_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmTest.php index 5d4480d361b..a2947875a29 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmTest.php @@ -152,7 +152,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -161,9 +161,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -172,9 +172,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -183,7 +183,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyMeEmailConfirmPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMePasswordResetTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMePasswordResetTest.php index 0e34333d184..0eb2300fdd9 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMePasswordResetTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyInStoreKeyByStoreKeyMePasswordResetTest.php @@ -156,7 +156,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_401' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -166,9 +166,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_403' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -178,9 +178,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_404' => [ + 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -190,7 +190,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 404 + 403 ], 'ByProjectKeyInStoreKeyByStoreKeyMePasswordResetPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMeEmailConfirmTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMeEmailConfirmTest.php index 91095733c29..54d9013c784 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMeEmailConfirmTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMeEmailConfirmTest.php @@ -148,7 +148,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyMeEmailConfirmPost_401' => [ + 'ByProjectKeyMeEmailConfirmPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -156,9 +156,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyMeEmailConfirmPost_403' => [ + 'ByProjectKeyMeEmailConfirmPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -166,9 +166,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyMeEmailConfirmPost_404' => [ + 'ByProjectKeyMeEmailConfirmPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -176,7 +176,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->emailConfirm() ->post(null); }, - 404 + 403 ], 'ByProjectKeyMeEmailConfirmPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMePasswordResetTest.php b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMePasswordResetTest.php index a440bed3286..85a75f86c04 100644 --- a/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMePasswordResetTest.php +++ b/lib/commercetools-api-tests/test/unit/Client/Resource/ResourceByProjectKeyMePasswordResetTest.php @@ -152,7 +152,7 @@ function (ApiRequestBuilder $builder): RequestInterface { }, 400 ], - 'ByProjectKeyMePasswordResetPost_401' => [ + 'ByProjectKeyMePasswordResetPost_404' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -161,9 +161,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 401 + 404 ], - 'ByProjectKeyMePasswordResetPost_403' => [ + 'ByProjectKeyMePasswordResetPost_401' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -172,9 +172,9 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 403 + 401 ], - 'ByProjectKeyMePasswordResetPost_404' => [ + 'ByProjectKeyMePasswordResetPost_403' => [ function (ApiRequestBuilder $builder): RequestInterface { return $builder ->withProjectKey("projectKey") @@ -183,7 +183,7 @@ function (ApiRequestBuilder $builder): RequestInterface { ->reset() ->post(null); }, - 404 + 403 ], 'ByProjectKeyMePasswordResetPost_500' => [ function (ApiRequestBuilder $builder): RequestInterface { diff --git a/lib/commercetools-api/docs/RequestBuilder.md b/lib/commercetools-api/docs/RequestBuilder.md index 9fa80249422..0a8eed1e199 100644 --- a/lib/commercetools-api/docs/RequestBuilder.md +++ b/lib/commercetools-api/docs/RequestBuilder.md @@ -3080,6 +3080,8 @@ Use this method to verify a global Customer's email during their [email verifica Verifying the email of the Customer produces the [CustomerEmailVerified](ctp:api:type:CustomerEmailVerifiedMessage) Message. +After the email is verified, all email tokens issued previously through the [email verification flow](/../api/projects/customers#email-verification-of-customer) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + ### Example ```php @@ -3097,6 +3099,7 @@ $request = $builder Use this method to create an email token for a global Customer during their [email verification process](/../api/customers-overview#customer-email-verification). Creating an email token for the Customer produces the [CustomerEmailTokenCreated](ctp:api:type:CustomerEmailTokenCreatedMessage) Message. +The Message will include the token's value, if the token's validity is 60 minutes or less. ### Example @@ -3207,10 +3210,10 @@ $request = $builder Use this method to reset a global Customer's password during their [password reset process](/../api/customers-overview#customer-password-reset). -After the password is reset, any previously issued access and/or refresh tokens created through the [password flow](/authorization#password-flow) or [refresh token flow](/authorization#refresh-token-flow) are invalidated. - Resetting the password of the Customer produces the [CustomerPasswordUpdated](ctp:api:type:CustomerPasswordUpdatedMessage) Message with `reset=true`. +After the password is reset, all password tokens issued previously through the [password reset flow](/../api/projects/customers#password-reset-of-customer) are invalidated. In addition, any access and refresh tokens issued previously through the [password flow](/../api/authorization#password-flow) and [refresh token flow](/../api/authorization#refresh-token-flow) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + ### Example ```php @@ -3227,7 +3230,8 @@ $request = $builder Use this method to create a password reset token for a global Customer during their [password reset process](/../api/customers-overview#customer-password-reset). -Creating a password reset token does not invalidate existing tokens. +Creating a password reset token for the Customer produces the [CustomerPasswordTokenCreated](ctp:api:type:CustomerPasswordTokenCreatedMessage) Message. +The Message will include the token's value, if the token's validity is 60 minutes or less. ### Example @@ -4465,6 +4469,8 @@ Verifying the email of the Customer produces the [CustomerEmailVerified](ctp:api If the Customer exists in the Project but the `stores` field references a different [Store](ctp:api:type:Store), this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. +After the email is verified, all email tokens issued previously through the [email verification flow](/../api/projects/customers#email-verification-of-customer) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + ### Example ```php @@ -4484,6 +4490,9 @@ Use this method to create an email token for a Store-specific Customer during th If the Customer exists in the Project but the `stores` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. +Creating an email token for the Customer produces the [CustomerEmailTokenCreated](ctp:api:type:CustomerEmailTokenCreatedMessage) Message. +The Message will include the token's value, if the token's validity is 60 minutes or less. + ### Example ```php @@ -4608,10 +4617,10 @@ $request = $builder Use this method to reset a Store-specific Customer's password during their [password reset process](/../api/customers-overview#customer-password-reset). -After the password is reset, any previously issued access and/or refresh tokens created through the [password flow](/authorization#password-flow) or [refresh token flow](/authorization#refresh-token-flow) are invalidated. - Resetting the password of the Customer produces the [CustomerPasswordUpdated](ctp:api:type:CustomerPasswordUpdatedMessage) Message with `reset=true`. +After the password is reset, all password tokens issued previously through the [password reset flow](/../api/projects/customers#password-reset-of-customer) are invalidated. In addition, any access and refresh tokens issued previously through the [password flow](/../api/authorization#password-flow) and [refresh token flow](/../api/authorization#refresh-token-flow) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + If the Customer exists in the Project but the `stores` field references a different [Store](ctp:api:type:Store), then this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. @@ -4631,10 +4640,11 @@ $request = $builder Use this method to create a password reset token for a Store-specific Customer during their [password reset process](/../api/customers-overview#customer-password-reset). -Creating a password reset token does not invalidate existing tokens. - If the Customer exists in the Project but the `stores` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. +Creating a password reset token for the Customer produces the [CustomerPasswordTokenCreated](ctp:api:type:CustomerPasswordTokenCreatedMessage) Message. +The Message will include the token's value, if the token's validity is 60 minutes or less. + ### Example ```php @@ -4956,6 +4966,8 @@ $request = $builder This is the last step in the [email verification process of a Customer](/../api/projects/customers#email-verification-of-customer-in-store). Returns a `200 OK` status if successful. +After the email is verified, all email tokens issued previously through the [email verification flow](/../api/projects/customers#email-verification-of-customer) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + A [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error is returned in the following scenarios: - If no Customer exists with the `id` specified in the [customer:{id}](/scopes#composable-commerce-oauth) scope. @@ -5158,6 +5170,8 @@ This is the last step in the [password reset process of the authenticated Custom Resetting a password produces the Customer [CustomerPasswordUpdated](ctp:api:type:CustomerPasswordUpdatedMessage) Message with `reset=true`. +After the password is reset, all password tokens issued previously through the [password reset flow](/../api/projects/customers#password-reset-of-customer) are invalidated. In addition, any access and refresh tokens issued previously through the [password flow](/../api/authorization#password-flow) and [refresh token flow](/../api/authorization#refresh-token-flow) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + A [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error is returned in the following scenarios: - If no Customer exists with the `id` specified in the [customer:{id}](/scopes#composable-commerce-oauth) scope. @@ -7351,6 +7365,8 @@ $request = $builder This is the last step in the [email verification process of a Customer](/../api/projects/customers#email-verification-of-customer). +After the email is verified, all email tokens issued previously through the [email verification flow](/../api/projects/customers#email-verification-of-customer) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + ### Example ```php @@ -7563,6 +7579,8 @@ This is the last step in the [password reset process of a Customer](/../api/proj Resetting a password of the Customer produces the [CustomerPasswordUpdated](ctp:api:type:CustomerPasswordUpdatedMessage) Message with `reset=true`. +After the password is reset, all password tokens issued previously through the [password reset flow](/../api/projects/customers#password-reset-of-customer) are invalidated. In addition, any access and refresh tokens issued previously through the [password flow](/../api/authorization#password-flow) and [refresh token flow](/../api/authorization#refresh-token-flow) are invalidated. This invalidation of tokens is [eventually consistent](/../api/general-concepts#eventual-consistency). + ### Example ```php diff --git a/lib/commercetools-api/src/Models/Customer/CustomerCreateEmailToken.php b/lib/commercetools-api/src/Models/Customer/CustomerCreateEmailToken.php index 84daddebee7..1ffd07fc833 100644 --- a/lib/commercetools-api/src/Models/Customer/CustomerCreateEmailToken.php +++ b/lib/commercetools-api/src/Models/Customer/CustomerCreateEmailToken.php @@ -16,6 +16,7 @@ interface CustomerCreateEmailToken extends JsonObject public const FIELD_ID = 'id'; public const FIELD_VERSION = 'version'; public const FIELD_TTL_MINUTES = 'ttlMinutes'; + public const FIELD_INVALIDATE_OLDER_TOKENS = 'invalidateOlderTokens'; /** *
Unique identifier of the Customer.
@@ -41,6 +42,14 @@ public function getVersion(); */ public function getTtlMinutes(); + /** + *If set to true, all email tokens issued previously for the Customer will be invalidated.
Unique identifier of the Customer.
* @@ -71,6 +77,17 @@ public function getTtlMinutes() return $this->ttlMinutes; } + /** + *If set to true, all email tokens issued previously for the Customer will be invalidated.
If set to true, all email tokens issued previously for the Customer will be invalidated.
Email address of the Customer treated as case-insensitive.
@@ -32,6 +33,14 @@ public function getEmail(); */ public function getTtlMinutes(); + /** + *If set to true, all password tokens issued previously for the Customer will be invalidated.
Email address of the Customer treated as case-insensitive.
* @@ -54,6 +60,17 @@ public function getTtlMinutes() return $this->ttlMinutes; } + /** + *If set to true, all password tokens issued previously for the Customer will be invalidated.
If set to true, all password tokens issued previously for the Customer will be invalidated.
If true, all tokens issued previously for the Customer will be invalidated.
Date and time (UTC) the token was initially created.
* @@ -89,6 +98,11 @@ public function setValue(?string $value): void; */ public function setExpiresAt(?DateTimeImmutable $expiresAt): void; + /** + * @param ?bool $invalidateOlderTokens + */ + public function setInvalidateOlderTokens(?bool $invalidateOlderTokens): void; + /** * @param ?DateTimeImmutable $createdAt */ diff --git a/lib/commercetools-api/src/Models/Customer/CustomerTokenBuilder.php b/lib/commercetools-api/src/Models/Customer/CustomerTokenBuilder.php index 7fdd3ad9d95..be11d73c779 100644 --- a/lib/commercetools-api/src/Models/Customer/CustomerTokenBuilder.php +++ b/lib/commercetools-api/src/Models/Customer/CustomerTokenBuilder.php @@ -45,6 +45,12 @@ final class CustomerTokenBuilder implements Builder */ private $expiresAt; + /** + + * @var ?bool + */ + private $invalidateOlderTokens; + /** * @var ?DateTimeImmutable @@ -101,6 +107,17 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *If true, all tokens issued previously for the Customer will be invalidated.
Date and time (UTC) the token was initially created.
* @@ -167,6 +184,17 @@ public function withExpiresAt(?DateTimeImmutable $expiresAt) return $this; } + /** + * @param ?bool $invalidateOlderTokens + * @return $this + */ + public function withInvalidateOlderTokens(?bool $invalidateOlderTokens) + { + $this->invalidateOlderTokens = $invalidateOlderTokens; + + return $this; + } + /** * @param ?DateTimeImmutable $createdAt * @return $this @@ -197,6 +225,7 @@ public function build(): CustomerToken $this->customerId, $this->value, $this->expiresAt, + $this->invalidateOlderTokens, $this->createdAt, $this->lastModifiedAt ); diff --git a/lib/commercetools-api/src/Models/Customer/CustomerTokenModel.php b/lib/commercetools-api/src/Models/Customer/CustomerTokenModel.php index 2ad4bccc965..3e8e6003ed7 100644 --- a/lib/commercetools-api/src/Models/Customer/CustomerTokenModel.php +++ b/lib/commercetools-api/src/Models/Customer/CustomerTokenModel.php @@ -44,6 +44,12 @@ final class CustomerTokenModel extends JsonObjectModel implements CustomerToken */ protected $expiresAt; + /** + * + * @var ?bool + */ + protected $invalidateOlderTokens; + /** * * @var ?DateTimeImmutable @@ -65,6 +71,7 @@ public function __construct( ?string $customerId = null, ?string $value = null, ?DateTimeImmutable $expiresAt = null, + ?bool $invalidateOlderTokens = null, ?DateTimeImmutable $createdAt = null, ?DateTimeImmutable $lastModifiedAt = null ) { @@ -72,6 +79,7 @@ public function __construct( $this->customerId = $customerId; $this->value = $value; $this->expiresAt = $expiresAt; + $this->invalidateOlderTokens = $invalidateOlderTokens; $this->createdAt = $createdAt; $this->lastModifiedAt = $lastModifiedAt; } @@ -160,6 +168,26 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *If true, all tokens issued previously for the Customer will be invalidated.
Date and time (UTC) the token was initially created.
* @@ -241,6 +269,14 @@ public function setExpiresAt(?DateTimeImmutable $expiresAt): void $this->expiresAt = $expiresAt; } + /** + * @param ?bool $invalidateOlderTokens + */ + public function setInvalidateOlderTokens(?bool $invalidateOlderTokens): void + { + $this->invalidateOlderTokens = $invalidateOlderTokens; + } + /** * @param ?DateTimeImmutable $createdAt */ diff --git a/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php b/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php index b67434a5749..e8c833946c6 100644 --- a/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php +++ b/lib/commercetools-api/src/Models/Error/ErrorObjectModel.php @@ -61,6 +61,8 @@ final class ErrorObjectModel extends JsonObjectModel implements ErrorObject 'EnumKeyDoesNotExist' => EnumKeyDoesNotExistErrorModel::class, 'EnumValueIsUsed' => EnumValueIsUsedErrorModel::class, 'EnumValuesMustMatch' => EnumValuesMustMatchErrorModel::class, + 'ExpiredCustomerEmailToken' => ExpiredCustomerEmailTokenErrorModel::class, + 'ExpiredCustomerPasswordToken' => ExpiredCustomerPasswordTokenErrorModel::class, 'ExtensionBadResponse' => ExtensionBadResponseErrorModel::class, 'ExtensionNoResponse' => ExtensionNoResponseErrorModel::class, 'ExtensionPredicateEvaluationFailed' => ExtensionPredicateEvaluationFailedErrorModel::class, diff --git a/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenError.php b/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenError.php new file mode 100644 index 00000000000..63fbe583fd8 --- /dev/null +++ b/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenError.php @@ -0,0 +1,34 @@ +"The given email token has expired."
+ *
+
+ * @return null|string
+ */
+ public function getMessage();
+
+ /**
+ * @param ?string $message
+ */
+ public function setMessage(?string $message): void;
+}
diff --git a/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenErrorBuilder.php b/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenErrorBuilder.php
new file mode 100644
index 00000000000..0bcf7bd0501
--- /dev/null
+++ b/lib/commercetools-api/src/Models/Error/ExpiredCustomerEmailTokenErrorBuilder.php
@@ -0,0 +1,63 @@
+
+ */
+final class ExpiredCustomerEmailTokenErrorBuilder implements Builder
+{
+ /**
+
+ * @var ?string
+ */
+ private $message;
+
+ /**
+ * "The given email token has expired."
"The given email token has expired."
"The given password token has expired."
+ *
+
+ * @return null|string
+ */
+ public function getMessage();
+
+ /**
+ * @param ?string $message
+ */
+ public function setMessage(?string $message): void;
+}
diff --git a/lib/commercetools-api/src/Models/Error/ExpiredCustomerPasswordTokenErrorBuilder.php b/lib/commercetools-api/src/Models/Error/ExpiredCustomerPasswordTokenErrorBuilder.php
new file mode 100644
index 00000000000..8a023306010
--- /dev/null
+++ b/lib/commercetools-api/src/Models/Error/ExpiredCustomerPasswordTokenErrorBuilder.php
@@ -0,0 +1,63 @@
+
+ */
+final class ExpiredCustomerPasswordTokenErrorBuilder implements Builder
+{
+ /**
+
+ * @var ?string
+ */
+ private $message;
+
+ /**
+ * "The given password token has expired."
"The given password token has expired."
Unique identifier of the Customer.
@@ -33,6 +35,22 @@ public function getCustomerId(); */ public function getExpiresAt(); + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue(); + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Unique identifier of the Message. Can be used to track which Messages have been processed.
* @@ -232,6 +244,28 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue() + { + return $this->value; + } + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Value of the token, present only if the token's validity is 60 minutes or less.
+ * + * + * @return null|string + */ + public function getValue() + { + if (is_null($this->value)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_VALUE); + if (is_null($data)) { + return null; + } + $this->value = (string) $data; + } + + return $this->value; + } + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Unique identifier of the Customer.
@@ -33,6 +35,22 @@ public function getCustomerId(); */ public function getExpiresAt(); + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue(); + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Unique identifier of the Customer.
* @@ -55,6 +67,28 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue() + { + return $this->value; + } + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Value of the token, present only if the token's validity is 60 minutes or less.
+ * + * + * @return null|string + */ + public function getValue() + { + if (is_null($this->value)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_VALUE); + if (is_null($data)) { + return null; + } + $this->value = (string) $data; + } + + return $this->value; + } + + /** + *If true, all email tokens issued previously for the Customer are invalidated.
Unique identifier of the Customer.
@@ -33,6 +35,22 @@ public function getCustomerId(); */ public function getExpiresAt(); + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue(); + + /** + *If true, all password tokens issued previously for the Customer are invalidated.
Unique identifier of the Message. Can be used to track which Messages have been processed.
* @@ -232,6 +244,28 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue() + { + return $this->value; + } + + /** + *If true, all password tokens issued previously for the Customer are invalidated.
Value of the token, present only if the token's validity is 60 minutes or less.
+ * + * + * @return null|string + */ + public function getValue() + { + if (is_null($this->value)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_VALUE); + if (is_null($data)) { + return null; + } + $this->value = (string) $data; + } + + return $this->value; + } + + /** + *If true, all password tokens issued previously for the Customer are invalidated.
Unique identifier of the Customer.
@@ -33,6 +35,22 @@ public function getCustomerId(); */ public function getExpiresAt(); + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue(); + + /** + *If true, all password tokens issued previously for the Customer are invalidated.
Unique identifier of the Customer.
* @@ -55,6 +67,28 @@ public function getExpiresAt() return $this->expiresAt; } + /** + *Value of the token, present only if the token's validity is 60 minutes or less.
+ * + + * @return null|string + */ + public function getValue() + { + return $this->value; + } + + /** + *If true, all password tokens issued previously for the Customer are invalidated.
Value of the token, present only if the token's validity is 60 minutes or less.
+ * + * + * @return null|string + */ + public function getValue() + { + if (is_null($this->value)) { + /** @psalm-var ?string $data */ + $data = $this->raw(self::FIELD_VALUE); + if (is_null($data)) { + return null; + } + $this->value = (string) $data; + } + + return $this->value; + } + + /** + *If true, all password tokens issued previously for the Customer are invalidated.