gemmaft / utils /auth.py
astroknotsheep's picture
Upload 15 files
b619545 verified
raw
history blame
1.41 kB
import streamlit as st
import os
from huggingface_hub import HfApi, login
def check_hf_token(token):
"""
Validate Hugging Face token and login if valid
Args:
token (str): Hugging Face API token
Returns:
bool: True if token is valid, False otherwise
"""
try:
# Set token in environment and session state
os.environ["HF_TOKEN"] = token
st.session_state["hf_token"] = token
# Try to log in
login(token=token, add_to_git_credential=False)
# Test API access
api = HfApi(token=token)
user_info = api.whoami()
# Store username in session state
st.session_state["hf_username"] = user_info["name"] if "name" in user_info else None
return True
except Exception as e:
st.session_state["hf_token"] = None
st.session_state["hf_username"] = None
print(f"Authentication error: {str(e)}")
return False
def get_current_user():
"""
Get the currently authenticated user's information
Returns:
dict: User information or None if not authenticated
"""
if "hf_token" in st.session_state and st.session_state["hf_token"]:
try:
api = HfApi(token=st.session_state["hf_token"])
return api.whoami()
except:
return None
return None