Fix: OTP leading zeros bug causing phone_change_token verification failures (#40797) #2272
+7
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: OTP Leading Zeros Bug Causing Phone Verification Failures
Fixes #40797
Problem
The
GenerateOtp()function ininternal/crypto/crypto.goloses leading zeros when convertingbig.Intto string. This causes:"123"(3 digits)"000123"(6 digits)403: Token has expired or is invalidRoot Cause
big.Int.String()strips leading zeros (e.g.,000123→"123"), but the OTP should always be exactlydigitscharacters long.Solution
Added zero-padding to ensure the OTP string always matches the requested digit count:
Impact
auth.updateUser({ phone })flowFiles Changed
internal/crypto/crypto.go(lines 22-29)Testing
CI will validate this fix runs correctly with existing test suite.