import streamlit as st import sys import os import time sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from utils.password_reset import verify_reset_token, reset_password # Configuration de la page pour cacher complètement la sidebar st.set_page_config( page_title="Réinitialisation du mot de passe", page_icon="🔒", layout="centered", initial_sidebar_state="collapsed" ) # Cacher tous les éléments de la sidebar et le menu hamburger hide_streamlit_style = """ """ st.markdown(hide_streamlit_style, unsafe_allow_html=True) # Titre de la page st.title("Réinitialisation du mot de passe") # Récupérer le token depuis l'URL token = st.query_params.get("token", None) if not token: st.error("Token de réinitialisation manquant.") st.stop() # Vérifier la validité du token valid, user_id = verify_reset_token(token) if not valid: st.error("Le lien de réinitialisation est invalide ou a expiré.") time.sleep(3) # Attendre 3 secondes st.switch_page("app.py") # Rediriger vers la page de connexion st.stop() # Formulaire de nouveau mot de passe with st.form("reset_password_form"): new_password = st.text_input("Nouveau mot de passe", type="password") confirm_password = st.text_input("Confirmez le mot de passe", type="password") submitted = st.form_submit_button("Réinitialiser le mot de passe") if submitted: if new_password != confirm_password: st.error("Les mots de passe ne correspondent pas.") elif len(new_password) < 8: st.error("Le mot de passe doit contenir au moins 8 caractères.") else: success, message = reset_password(token, new_password) if success: st.success("Votre mot de passe a été mis à jour avec succès.") st.info("Redirection vers la page de connexion...") time.sleep(3) # Attendre 3 secondes st.switch_page("app.py") # Rediriger vers la page de connexion else: st.error(message)