Update main.py
Browse files
main.py
CHANGED
@@ -51,7 +51,7 @@ async def login_post(
|
|
51 |
raise HTTPException(status_code=400, detail="Invalid email or password")
|
52 |
|
53 |
user = authenticate_user(db, email, password)
|
54 |
-
if user:
|
55 |
access_token = auth_views.create_access_token(
|
56 |
data={"sub": user.email},
|
57 |
expires_delta=timedelta(minutes=auth_views.ACCESS_TOKEN_EXPIRE_MINUTES)
|
@@ -60,9 +60,17 @@ async def login_post(
|
|
60 |
response = RedirectResponse(url="/protected", status_code=status.HTTP_303_SEE_OTHER)
|
61 |
response.set_cookie(key="access_token", value=f"Bearer {access_token}", httponly=True)
|
62 |
return response
|
|
|
|
|
|
|
|
|
|
|
63 |
else:
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
66 |
@app.get("/register", response_class=HTMLResponse)
|
67 |
async def register_get(request: Request):
|
68 |
return templates.TemplateResponse("register.html", {"request": request})
|
|
|
51 |
raise HTTPException(status_code=400, detail="Invalid email or password")
|
52 |
|
53 |
user = authenticate_user(db, email, password)
|
54 |
+
if user and user.is_verified: # Check if user is verified
|
55 |
access_token = auth_views.create_access_token(
|
56 |
data={"sub": user.email},
|
57 |
expires_delta=timedelta(minutes=auth_views.ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
|
60 |
response = RedirectResponse(url="/protected", status_code=status.HTTP_303_SEE_OTHER)
|
61 |
response.set_cookie(key="access_token", value=f"Bearer {access_token}", httponly=True)
|
62 |
return response
|
63 |
+
elif user and not user.is_verified: # User is not verified
|
64 |
+
raise HTTPException(
|
65 |
+
status_code=400,
|
66 |
+
detail="You must verify your email before accessing this resource."
|
67 |
+
)
|
68 |
else:
|
69 |
+
# If authentication fails, return to the login page with an error message
|
70 |
+
return templates.TemplateResponse(
|
71 |
+
"login.html",
|
72 |
+
{"request": request, "error_message": "Invalid email or password"}
|
73 |
+
)
|
74 |
@app.get("/register", response_class=HTMLResponse)
|
75 |
async def register_get(request: Request):
|
76 |
return templates.TemplateResponse("register.html", {"request": request})
|