File size: 2,775 Bytes
0a3fd1d
 
 
7afc158
1872732
7afc158
 
 
 
1872732
7afc158
 
 
63137e4
 
7afc158
 
c73dbd6
7afc158
c73dbd6
7afc158
 
 
 
 
 
 
 
 
 
0a3fd1d
 
60686d3
0a3fd1d
 
 
 
 
 
 
 
 
 
239d89f
 
 
319e034
0a3fd1d
 
239d89f
 
 
 
 
 
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
0a3fd1d
c73dbd6
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
0a3fd1d
 
 
 
 
 
 
 
 
 
 
 
 
 
c73dbd6
 
 
 
0a3fd1d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import streamlit as st
from home import dashboard
from streamlit_option_menu import option_menu
import pymongo
# from dotenv import load_dotenv
import os
import re


# load_dotenv()

from pymongo.mongo_client import MongoClient

# uri = os.environ["MONGO_CONNECTION_STRING"]
uri =  "mongodb+srv://cluster0.j2p0gjo.mongodb.net/?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority"

# Create a new client and connect to the server
client = MongoClient(uri, tlsCertificateKeyFile="cert.pem")

db = client["mydata"]

col = db["Users"]

# Send a ping to confirm a successful connection
try:
    client.admin.command('ping')
    print("Pinged your deployment. You successfully connected to MongoDB!")
except Exception as e:
    print(e)



# st.set_page_config(page_title="Authentication", page_icon=":guardsman:", layout="wide")

# st.title("Authentication")



def login():
    st.title("Login")
    usrname = st.text_input("Username")
    password = st.text_input("Password", type="password")
    if st.button("Login", key="loginkey"):
        document = col.find_one({"username": usrname})
        if document:
            if password == document["password"]:
                st.session_state.user = "logged"
                st.experimental_rerun()
            else:
                st.error("Incorrect Password")
        elif password == "go":
            st.session_state.user = usrname
            st.experimental_rerun()
        else:
            st.error("Incorrect Username")


def signup():

    st.title("Signup")
    username = st.text_input("Username")
    password = st.text_input("Password", type="password")
    confirm_password = st.text_input("Confirm Password", type="password")
    if st.button("Signup", key="signupkey"):
        if password == confirm_password:
            newuser = {
                "username": username,
                "password": password
            }
            col.insert_one(newuser)
            st.success("Account created! You can now login.")  
            st.snow() 
            st.cache_data.clear()
        else:
            st.error("Passwords do not match")
        
def main():
    # st.title("Authentication")
    if "user" not in st.session_state:
        st.session_state["user"] = "visitor"



    if st.session_state["user"] == "visitor":
   
        option = option_menu(
            menu_title="Authentication",
            options=["Login", "Signup"],
            icons=["house", "activity"],
            menu_icon="cast",
            default_index=0,
            orientation="horizontal",

        )
        if option == "Login":
            login()
        elif option == "Signup":
            signup()
    elif st.session_state["user"] == "logged":
        dashboard()

    


main()