Registration
Create a new Babel account from/auth/register.
Fill in the registration form
Provide the following details:
Your full name or display name. Used throughout the app to identify you to teammates.
Your email address. Babel sends a confirmation code here and uses it as your login identifier.
Your account password.
Must match the
password field exactly. Babel validates this on the client before submitting.Email confirmation
Your account cannot be used until your email is confirmed. Babel enforces this at login — attempting to log in with an unconfirmed account returns an error.Enter the confirmation code
On the
/auth/confirm-account page, enter the 6-digit code from your email into the Token field.The 6-digit confirmation code sent to your email after registration.
The confirmation code is single-use. Once submitted successfully, it cannot be reused. If you navigate away before confirming, you can return to
/auth/confirm-account at any time and enter the code.Requesting a new confirmation code
If your code expired or you never received it, request a fresh one from/auth/request-code.
Enter your email
The email address you registered with. Babel looks up the unconfirmed account associated with this address.
Login
Sign in from/auth/login.
Token management
Babel uses a JWT-based session model. Understanding how tokens work helps you troubleshoot authentication issues.How the token is stored and sent
After a successful login, Babel stores the JWT inlocalStorage:
Authorization header:
src/lib/axios.ts. You do not need to attach the header manually when using the app.
Checking the current user
The app callsGET /auth/user on load to verify the stored token and hydrate the current user’s profile. If the token is missing, expired, or invalid, the request fails and you are redirected to the login page.
Logging out
Logging out removes the token fromlocalStorage. The JWT itself is not invalidated server-side — it simply becomes inaccessible to the app. The session ends on the next page load or API call after the token is removed.
Password recovery
If you forget your password, use the two-step recovery flow.Step 1 — Request a reset token
Navigate to /auth/forgot-password
Enter the email address associated with your account.
Your registered email address. Babel sends a reset token here if the account exists.
Step 2 — Set a new password
Enter the reset token
Go to
/auth/new-password. Babel first asks you to enter the token from your email. This is validated against /auth/validate-token before the password form is shown.The reset token from the recovery email.
API endpoint reference
| Endpoint | Method | Description |
|---|---|---|
/auth/create-account | POST | Register a new user account |
/auth/confirm-account | POST | Confirm account with a 6-digit token |
/auth/login | POST | Authenticate and receive a JWT |
/auth/request-code | POST | Request a new confirmation code |
/auth/forgot-password | POST | Request a password reset email |
/auth/validate-token | POST | Validate a password reset token |
/auth/update-password/:token | POST | Set a new password using the reset token |
/auth/user | GET | Return the authenticated user’s profile |
/auth/check-password | POST | Verify the current user’s password (used for sensitive operations) |
/auth/profile | PUT | Update the authenticated user’s name and email |
/auth/update-password | POST | Change the authenticated user’s password (requires current password) |
Frequently asked questions
What if I didn't receive my confirmation email?
What if I didn't receive my confirmation email?
First, check your spam or junk folder. Confirmation emails are sent from the Babel backend and may be filtered by some providers.If the email is not in spam, go to
/auth/request-code, enter your registered email address, and click Enviar código. A new confirmation code will be sent. Return to /auth/confirm-account and enter the new code.If you continue to have trouble, make sure you are checking the inbox for the exact email address you registered with.How long is the session valid?
How long is the session valid?
Session duration is determined by the JWT’s expiry claim set by the backend. The app does not currently display an expiry countdown. If your session expires while you are using the app, the next API request will fail with a 401 error and you will be redirected to the login page.To resume working, log in again at
/auth/login. Your projects and data are not affected by session expiry.What if I forget my password?
What if I forget my password?
Use the password recovery flow. Navigate to
/auth/forgot-password and enter your email address. You will receive an email with a reset token. Go to /auth/new-password, enter the token, then choose a new password.If the reset email doesn’t arrive, check your spam folder and verify you are using the correct registered email address.Can I use Babel without confirming my email?
Can I use Babel without confirming my email?
No. Babel requires email confirmation before you can log in. If you attempt to log in with an unconfirmed account, the server returns an error. Complete the confirmation step at
/auth/confirm-account first.How do I change my password when I'm already logged in?
How do I change my password when I'm already logged in?
Password changes for authenticated users are handled through the profile settings. Babel uses
/auth/check-password to verify your current password before accepting a new one. Navigate to your profile (accessible from the top navigation) to update your credentials.