Django + allauth email first authentication
I have a django rest api app where I want to setup a custom authentication flow. Here is how I want it to work.
Sign Up
- User enters email
- User gets email verification code
- User enters verification code
- User adds a password
- User selects a username and a display name
- User selects a plan
- User enters billing information (may not be necessary if they choose a free plan)
- User is now fully logged in!
Login
- User enters email (if account doesnt exist or is not past step 4 of signup transfers to step 2 of signup)
- User enters password (only works if past step 4)
- User is routed to step 5-8 of signup if they are not completed
- User logs in
Social Signup
I want this to essentially bypass signup steps 1-4 and link a social account.
It seems allauth requires you to signup with a password, and I cannot figure out how to get this flow to work. I am also wondering the correct way to implement this.
I was thinking about using another module thats not allauth, however most other modules do not have support for other social apps.
How should I go about implementing this?