sirochild commited on
Commit
8917a01
·
verified ·
1 Parent(s): 3e44aa4

Upload main_app.py

Browse files
Files changed (1) hide show
  1. main_app.py +19 -9
main_app.py CHANGED
@@ -31,9 +31,24 @@ os.makedirs(USER_DATA_DIR, exist_ok=True)
31
  # --- 2. ユーザー ID 判定(毎回再認証・再発行) ---
32
 
33
  def get_current_user_id():
34
- hf_token = st.session_state.get("hf_token", None)
35
- # HFトークンが存在する場合は毎回whoamiで認証・ID取得
36
- if hf_token:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  try:
38
  api = HfApi()
39
  user_info = whoami(token=hf_token)
@@ -43,12 +58,7 @@ def get_current_user_id():
43
  st.warning(f"HF API エラー: {e}. 一時 UUID を使用します。")
44
  user_id = str(uuid.uuid4())
45
  is_hf_user = False
46
- else:
47
- # トークンなしは毎回新規UUID
48
- user_id = str(uuid.uuid4())
49
- is_hf_user = False
50
- # セッション状態に依存せず、毎回最新の認証結果を返す
51
- return user_id, is_hf_user
52
 
53
 
54
  user_id, is_hf_user = get_current_user_id()
 
31
  # --- 2. ユーザー ID 判定(毎回再認証・再発行) ---
32
 
33
  def get_current_user_id():
34
+ # OAuth認証情報を環境変数から取得
35
+ OAUTH_CLIENT_ID = os.getenv("OAUTH_CLIENT_ID")
36
+ OAUTH_CLIENT_SECRET = os.getenv("OAUTH_CLIENT_SECRET")
37
+ OAUTH_SCOPES = os.getenv("OAUTH_SCOPES", "openid profile email")
38
+ OPENID_PROVIDER_URL = os.getenv("OPENID_PROVIDER_URL", "https://huggingface.co")
39
+
40
+ # Streamlitセッションにトークンがなければ認証フロー
41
+ if "hf_token" not in st.session_state:
42
+ st.markdown("## HuggingFace OAuthログイン")
43
+ auth_url = f"{OPENID_PROVIDER_URL}/oauth/authorize?client_id={OAUTH_CLIENT_ID}&response_type=token&scope={OAUTH_SCOPES}"
44
+ if st.button("HuggingFaceでログイン"):
45
+ components.html(f"<script>window.location.href='{auth_url}';</script>", height=0)
46
+ st.info("ログイン後、アクセストークンが自動取得されます。")
47
+ user_id = str(uuid.uuid4())
48
+ is_hf_user = False
49
+ return user_id, is_hf_user
50
+ else:
51
+ hf_token = st.session_state["hf_token"]
52
  try:
53
  api = HfApi()
54
  user_info = whoami(token=hf_token)
 
58
  st.warning(f"HF API エラー: {e}. 一時 UUID を使用します。")
59
  user_id = str(uuid.uuid4())
60
  is_hf_user = False
61
+ return user_id, is_hf_user
 
 
 
 
 
62
 
63
 
64
  user_id, is_hf_user = get_current_user_id()