Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import os | |
| import requests | |
| import os | |
| import json | |
| # Fetch the service account key JSON file contents | |
| def initialize_login(): | |
| if "login" not in st.session_state: | |
| st.columns(3)[1].image("assets/logo.png") | |
| username = st.text_input("Username") | |
| password = st.text_input("Password", type="password") | |
| if st.button("Login"): | |
| authorized = authenticate(username, password) | |
| if authorized["status"]: | |
| st.session_state["login"] = authorized | |
| os.makedirs( | |
| os.path.join(".sessions", st.session_state["login"]["username"]), | |
| exist_ok=True, | |
| ) | |
| st.success("Login Successful!") | |
| st.experimental_rerun() | |
| else: | |
| st.error("Invalid username or password") | |
| else: | |
| st.sidebar.success(f'Hello, {st.session_state["login"]["Name"]}!') | |
| def authenticate(username, password): | |
| FIREBASE_WEB_API_KEY = os.environ.get("FIREBASE_WEB_API_KEY") | |
| payload = json.dumps( | |
| { | |
| "email": f"{username}@aieye.com", | |
| "password": password, | |
| "returnSecureToken": False, | |
| } | |
| ) | |
| rest_api_url = ( | |
| f"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword" | |
| ) | |
| r = requests.post(rest_api_url, params={"key": FIREBASE_WEB_API_KEY}, data=payload) | |
| print(r.json()) | |
| if r.status_code == 200: | |
| return { | |
| "status": True, | |
| "Name": " ".join(username.split("_")), | |
| "username": username, | |
| } | |
| else: | |
| return {"status": False} | |
| def get_login(): | |
| return st.session_state.get("login", {"status": False}) | |