srbhavya01 commited on
Commit
f352473
·
verified ·
1 Parent(s): f12b2b4

Update login.py

Browse files
Files changed (1) hide show
  1. login.py +33 -7
login.py CHANGED
@@ -1,29 +1,53 @@
1
  import streamlit as st
2
  import random
 
 
 
 
3
  from database import create_table, add_user
4
 
 
5
  create_table()
6
 
7
  st.title("💪 FitPlan AI Login")
8
 
9
- email = st.text_input("Enter Email")
 
10
 
11
  if "otp" not in st.session_state:
12
  st.session_state.otp = None
13
 
14
- # Generate OTP
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  if st.button("Send OTP"):
16
 
17
  if email:
18
 
19
- otp = random.randint(100000,999999)
20
-
21
  st.session_state.otp = otp
22
- st.success(f"Your OTP is: {otp}")
23
 
24
- # Save user in database
25
  add_user(email)
26
 
 
 
27
  else:
28
  st.warning("Enter email first")
29
 
@@ -35,7 +59,9 @@ if st.button("Verify OTP"):
35
  if str(st.session_state.otp) == user_otp:
36
 
37
  st.session_state.logged_in = True
38
- st.success("Login Successful 🎉")
 
 
39
 
40
  else:
41
  st.error("Invalid OTP")
 
1
  import streamlit as st
2
  import random
3
+ import smtplib
4
+ import os
5
+ from email.mime.text import MIMEText
6
+ from dotenv import load_dotenv
7
  from database import create_table, add_user
8
 
9
+ load_dotenv()
10
  create_table()
11
 
12
  st.title("💪 FitPlan AI Login")
13
 
14
+ EMAIL_USER = os.getenv("EMAIL_USER")
15
+ EMAIL_PASS = os.getenv("EMAIL_PASS")
16
 
17
  if "otp" not in st.session_state:
18
  st.session_state.otp = None
19
 
20
+ if "logged_in" not in st.session_state:
21
+ st.session_state.logged_in = False
22
+
23
+ email = st.text_input("Enter Email")
24
+
25
+
26
+ def send_otp(email, otp):
27
+
28
+ msg = MIMEText(f"Your FitPlan AI OTP is: {otp}")
29
+ msg["Subject"] = "FitPlan AI Login OTP"
30
+ msg["From"] = EMAIL_USER
31
+ msg["To"] = email
32
+
33
+ server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
34
+ server.login(EMAIL_USER, EMAIL_PASS)
35
+ server.sendmail(EMAIL_USER, email, msg.as_string())
36
+ server.quit()
37
+
38
+
39
  if st.button("Send OTP"):
40
 
41
  if email:
42
 
43
+ otp = random.randint(100000, 999999)
 
44
  st.session_state.otp = otp
 
45
 
46
+ send_otp(email, otp)
47
  add_user(email)
48
 
49
+ st.success("OTP sent to your email")
50
+
51
  else:
52
  st.warning("Enter email first")
53
 
 
59
  if str(st.session_state.otp) == user_otp:
60
 
61
  st.session_state.logged_in = True
62
+ st.success("Login successful 🎉")
63
+
64
+ st.switch_page("app.py")
65
 
66
  else:
67
  st.error("Invalid OTP")