Spaces:
Runtime error
Runtime error
File size: 1,043 Bytes
e12c660 b4c7867 e12c660 1bfb390 e12c660 1bfb390 e12c660 1bfb390 b4c7867 e12c660 1bfb390 e12c660 1bfb390 b40b09c 1bfb390 b40b09c e12c660 1bfb390 | 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 | import os
import gradio as gr
def require_login(request: gr.Request) -> str:
"""
Hugging Face Spaces OAuth provides user info via request in some Gradio versions,
but not always. We use multiple fallbacks:
1) request.username (best case)
2) HF-proxy headers (x-forwarded-*)
3) local/dev fallback
"""
# 1) Best-case Gradio field
username = getattr(request, "username", None)
if username:
return str(username)
# 2) Fallback: HF spaces headers (varies by proxy/version)
headers = getattr(request, "headers", {}) or {}
for key in [
"x-forwarded-user",
"x-hf-user",
"x-forwarded-preferred-username",
"x-auth-request-preferred-username",
]:
if key in headers and headers[key]:
return str(headers[key])
# 3) Optional local fallback (so app doesn't hard-crash during dev)
if os.getenv("HF_SPACE_ID") is None:
return "localuser"
raise gr.Error("Please log in using 'Sign in with Hugging Face' to use this app.") |