Spaces:
Paused
Paused
| # Firebase Admin SDK方式 | |
| # from firebase_admin import auth | |
| # | |
| import json | |
| from http.client import responses | |
| FIREBASE_API_KEY = "AIzaSyCMMynYm5VRHj1NOwkfWinX-HYsFArdUbk" | |
| # | |
| # def refresh_id_token(refresh_token): | |
| # try: | |
| # # 使用 refresh token 交换新的 ID token | |
| # response = auth.refresh_id_token(refresh_token) | |
| # | |
| # # 返回新的凭证 | |
| # return { | |
| # 'id_token': response['id_token'], # 新的ID token | |
| # 'refresh_token': response['refresh_token'], # 新的refresh token(如果有返回) | |
| # 'expires_in': response['expires_in'] # 有效期(秒) | |
| # } | |
| # except Exception as e: | |
| # print(f"刷新token失败: {e}") | |
| # return None | |
| # REST API方式 | |
| import requests | |
| def refresh_token_via_rest(refresh_token): | |
| # Firebase Auth REST API endpoint | |
| url = f"https://securetoken.googleapis.com/v1/token?key={FIREBASE_API_KEY}" | |
| payload = { | |
| 'grant_type': 'refresh_token', | |
| 'refresh_token': refresh_token | |
| } | |
| try: | |
| response = requests.post(url, json=payload) | |
| if response.status_code == 200: | |
| data = response.json() | |
| print(json.dumps(data, indent=2)) | |
| return { | |
| 'id_token': data['id_token'], | |
| 'refresh_token': data.get('refresh_token'), | |
| 'expires_in': data['expires_in'] | |
| } | |
| else: | |
| print(f"刷新失败: {response.text}") | |
| return None | |
| except Exception as e: | |
| print(f"请求异常: {e}") | |
| return None | |
| refresh_token = "AMf-vBy8gSoAKnafgEWe5eUHj8nLzefge1MnjCsIupEElzOEexgiNS7Fc8Z8SlQFeKIs-oQHmy-xvmJYOZL0EwV7CpCRWIXmB0HqNewaAEQvfWzZzBC8wVLCmpXOZCp4d0mQ1V209GEyh770aAG8q_9N6Uj-_bvotUu2aih2qC5KbhavRRG4CF04llpAib2x2-1gqA7f8sniEy0MEnJPSvbL-Qy7AkGt_MyIOFC0R9ofrNgYAPi87rjpE55JBJ38bpkmOgH3WZ3KBGYkVNM_0AWoxih7oZCfN-XjrNrGuuZRhhDofnuD_ab22tXIoqw24pYONv9JJ6qT_FQlxMnvUC7FrPSE9U8L2FDYBWjJmUd0Cxr4a7TmcqmemurBTh0tcRZp0yu0XmkRjp0su4JdzTODCzPQNk1utVD_oCR_TAm00SbZ-VG66qc" | |
| response = refresh_token_via_rest(refresh_token) | |
| # print(json.dump(response, indent=2) if response else "刷新失败") | |