DEVLOG #4
I reformed the Signup API flow and also made the Login endpoint.
The new signup API flow goes something like this:
PAGE-1:
- Enter full name
- Enter email
- set password
- Submit button
when submit button is clicked, we query/users/check-emailto check if the account already exists. If account exists, the API simply returns astatus_code=400, detail="email taken"else it returns{"available": True}.
PAGE-2:
- Set Username
When submit button is clicked, we query/users/check-usernameto check if the username is available or not. If username is already taken, the API simply returns astatus_code=400, detail="username taken"else it returns{"available": True}
PAGE-3:
- Choose if signing up as a business or as an individual.
PAGE-4:
- Set team name if applicable.
Finally, we have all the required data and data validation to make a new user so we can POST to /users to make a new user. Now, I had to think about this a bit because what if a there is a scenario that while a user is still making their account, they enter a username and go to the on-boarding step with the team name entering and all that stuff. And meanwhile, another user also enters the same username and creates the account by finishing the on-boarding before the first user who has the same username but did not create the account yet? when the user who is currently on on-boarding finishes all the steps, the server errors if there is no second data validation with all the collected data. Hence, I added validation of username and email in the second step too so that this case is handled correctly.
I also made the simple login endpoint which takes the email and password and validates the user and their hashed password. I am planning to keep the login a single page and hence there are no live validations I need to make. Thus, everything lives in a single /login endpoint.
Next Steps
I am also wondering that in the API response, I do not signify anywhere that if the user is currently logged in or not and I do not know how to keep the user logged in until either they sign out or something else so I need to learn that state management too. I will work on that next.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.