feat: add password recovery to both consoles - #93
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
object-storage-management-web | 73effaa | Commit Preview URL Branch Preview URL |
Aug 14 2026, 10:22 AM |
Deploying object-storage-web with
|
| Latest commit: |
73effaa
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://d1a73061.object-storage-web.pages.dev |
| Branch Preview URL: | https://feat-pb-6703-password-recove.object-storage-web.pages.dev |
Switched from reCAPTCHA v3 to Cloudflare TurnstileFrontend half of the change in internxt/object-storage-server#112. Two commits: the provider swap (
Deployment
Note the previous reCAPTCHA site key was Drive's own key, which is no longer the case: Turnstile uses a widget that already covers Verified from localhost against the real widgetGenuine single-use tokens are issued, the |
What has been added
The forgot-password and reset-password screens for the partners and the customer console, both built on the
AuthPageLayoutfrom the previous PR.ForgotPasswordViewtakes an email and always shows the same confirmation, whether or not the account exists.ResetPasswordViewreads the token from the query string, validates the new password against the platform policy as you type, asks for confirmation, and shows a dedicated screen when the link has expired or was already used.A
captcha.serviceobtains a reCAPTCHA v3 token and sends it in thex-internxt-captchaheader.validatePasswordmoves to a sharedpasswordPolicymodule, which the change-password modal now reuses instead of its own copy.Why
The password rules were written twice, once in the modal and once here, and the two would drift. The confirmation copy is deliberately identical in both outcomes so the screen cannot be used to find out which emails are registered.
Notes
VITE_RECAPTCHA_V3_SITE_KEY. Without it the service sends no header, which is what keeps local development working, since the server skips reCAPTCHA outside production