File size: 967 Bytes
1017fb2 | 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 |
import streamlit as st
from firebase_admin import auth
def verify_user_from_query():
"""
Retrieves Firebase ID token from URL parameter 'token',
verifies it with Firebase Admin SDK.
Returns:
uid (str): The verified User ID.
Raises:
ValueError: If token is missing.
auth.ExpiredIdTokenError: If token is expired.
auth.InvalidIdTokenError: If token is invalid.
Exception: For other errors.
"""
token = st.query_params.get("token")
if not token:
raise ValueError("No token found in query parameters.")
try:
# Verify the ID token
decoded_token = auth.verify_id_token(token)
uid = decoded_token['uid']
return uid
except auth.ExpiredIdTokenError:
raise
except auth.InvalidIdTokenError:
raise
except Exception as e:
raise e
|