codebuddies / frontend

Frontend concept with React for CBv3
https://cbv3.netlify.app
GNU General Public License v3.0
20 stars 27 forks source link

Update user registration flow to support new backend auth endpoints #161

Open lpatmo opened 4 years ago

lpatmo commented 4 years ago

Context

Note: work on this issue after https://github.com/codebuddies/backend/pull/187 is merged in. That PR rewrote the auth to use a more up-to-date auth package that supports email verification, an important step we didn't support before.

First, let me try registering a new user: POST /api/v1/auth/registration/ { "username": "linda", "email": "youremail@gmail.com", "password1": "uniquepassword", "password2": "uniquepassword" }

I'll get a 201 Response: { "detail": "Verification e-mail sent." }

image

If I login without verifying the email, I'll get the following 400 response: POST /api/v1/auth/login/ { "username": "", "email": "", "password": "" }

HTTP 400 Bad Request Allow: POST, OPTIONS Content-Type: application/json Vary: Accept

{ "non_field_errors": [ "E-mail is not verified." ] }

When the verification email is sent, it'll contain a link that looks something like: http://localhost:8000/api/v1/auth/registration/verify-email/?key=

On the FE app, we'll need to create a page with the route /api/v1/auth/registration/verify-email/?key=

and make a POST request sending the key:

POST /api/v1/auth/registration/verify-email/ { "key": }

This will validate the email address.

Source: https://github.com/codebuddies/backend/issues/191

How to log out: POST api/v1/auth/logout

How to view the details of a currently-logged-in user GET api/v1/auth/user image

GET api/v1/auth/current_user //without email address image

Acceptance criteria

[ ] Update the POST request when a user registers to hit POST /api/v1/auth/registration/ [ ] Remove the first name and last name fields [ ] Change the login endpoint to be POST /api/v1/auth/login/ [ ] Change the logout endpoint to be POST api/v1/auth/logout [ ] Create a api/v1/auth/registration/verify-email?key={KEY} page that upon load, makes a POST request to /verify-email and passes in the key from the params in the URL

POST /api/v1/auth/registration/verify-email/
{
    "key": <KEY>
}
peoray commented 4 years ago

PR has been merged. Is this available?

lpatmo commented 4 years ago

@peoray Here's a rough draft of the PR: https://github.com/codebuddies/frontend/pull/163

This will need to be rebased when the folder restructuring happens, though! In the meantime, feel free to poke around the branch from that draft PR. :) Let me know if you have questions!

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

pdotsani commented 3 years ago

Is this still available? Not sure if @peoray still wanted to take it.

peoray commented 3 years ago

@pdotsani Yeah, I'm still active on this. If you want, we can pair and work on it together

pdotsani commented 3 years ago

Sounds good! Are you on slack? I think I pinged you...

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

BethanyG commented 3 years ago

@peoray @pdotsani -- is this still in progress, or should we be closing it? Pls LMK. Thanks!

pdotsani commented 3 years ago

Hi @BethanyG - It's still in progress. @peoray and I are about halfway done. We're planing to work on it next weekend.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

BethanyG commented 3 years ago

@pdotsani -- the stale bot has come for this again. I think commenting on it will be sufficient to keep it open....but thought I'd ping you just in case.

pdotsani commented 3 years ago

@BethanyG 👍

BethanyG commented 3 years ago

Actually, it closed it. 😢 Reopening.

angelocordon commented 3 years ago

Isn't there a tag we can use that makes stalebot ignore issues?

BethanyG commented 3 years ago

@angelocordon - maybe - If there is, I don't have time at the moment to find it. For the backend, we review and then remove the stale flag for issues that get marked stale. I only noticed this for frontend because I got a note it was closed b/c its linked to a backend issue I was working on.