srbhavya01 commited on
Commit
1b72a3f
·
verified ·
1 Parent(s): db0a01f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -5
app.py CHANGED
@@ -7,12 +7,73 @@ from prompt_builder import build_prompt
7
 
8
  st.title("🏋️ AI Personalized 5-Day Workout Planner")
9
 
10
- if "logged_in" not in st.session_state:
11
- st.session_state.logged_in = False
 
12
 
13
- if not st.session_state.logged_in:
14
- st.warning("Please login first")
15
- st.stop()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  name = st.text_input("Name")
18
  age = st.number_input("Age", 10, 80)
 
7
 
8
  st.title("🏋️ AI Personalized 5-Day Workout Planner")
9
 
10
+ # Initialize session state
11
+ if "otp" not in st.session_state:
12
+ st.session_state.otp = None
13
 
14
+ if "authenticated" not in st.session_state:
15
+ st.session_state.authenticated = False
16
+
17
+ if "token" not in st.session_state:
18
+ st.session_state.token = None
19
+
20
+
21
+ st.title("🔐 FitPlan AI - OTP Login")
22
+
23
+ # ------------------------
24
+ # STEP 1: Enter Email
25
+ # ------------------------
26
+ if not st.session_state.authenticated:
27
+
28
+ email = st.text_input("Enter your Email")
29
+
30
+ if st.button("Send OTP"):
31
+ if email:
32
+ otp = generate_otp()
33
+ st.session_state.otp = otp
34
+ st.session_state.email = email
35
+
36
+ send_otp_email(email, otp)
37
+
38
+ st.success("OTP sent to your email 📧")
39
+ else:
40
+ st.error("Please enter email")
41
+
42
+ # ------------------------
43
+ # STEP 2: Verify OTP
44
+ # ------------------------
45
+ if st.session_state.otp:
46
+ entered_otp = st.text_input("Enter OTP")
47
+
48
+ if st.button("Verify OTP"):
49
+ if entered_otp == st.session_state.otp:
50
+ token = create_jwt(st.session_state.email)
51
+ st.session_state.token = token
52
+ st.session_state.authenticated = True
53
+ st.success("Login Successful!")
54
+ st.rerun()
55
+ else:
56
+ st.error("Invalid OTP")
57
+
58
+
59
+ # ------------------------
60
+ # Protected Page
61
+ # ------------------------
62
+ else:
63
+ decoded = verify_jwt(st.session_state.token)
64
+
65
+ if decoded:
66
+ st.success(f"Welcome {decoded['email']} 🎉")
67
+
68
+ st.write("You can now access FitPlan AI")
69
+
70
+ if st.button("Logout"):
71
+ st.session_state.authenticated = False
72
+ st.session_state.token = None
73
+ st.session_state.otp = None
74
+ st.rerun()
75
+ else:
76
+ st.error("Session Expired")
77
 
78
  name = st.text_input("Name")
79
  age = st.number_input("Age", 10, 80)