Gregniuki commited on
Commit
09274a9
·
1 Parent(s): 8852a3d

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +11 -3
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
- return templates.TemplateResponse("login.html", {"request": request, "error_message": "Invalid email or password"})
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})