如何在Python的Pyrebase/Firebase中添加Google/Facebook第三方登录?
添加Firebase Google、Facebook登录/注册功能(Python后端)
基于你已有的Firebase邮箱密码注册代码,以下是添加Google、Facebook第三方登录/注册的实现方案,核心逻辑是通过Firebase Admin SDK验证前端传来的第三方登录凭证(ID Token),完成用户身份校验与信息获取(首次登录时Firebase会自动完成用户注册)。
前置准备
- 在Firebase控制台的「Authentication」→「登录方法」中,启用Google、Facebook登录提供商,并配置对应平台的客户端ID/密钥(Google需配置Web客户端ID,Facebook需配置应用ID与应用密钥)。
- 前端需使用Firebase Auth SDK完成第三方登录流程,获取Firebase生成的ID Token,再将该Token传给后端接口。
代码实现
Google登录/注册处理函数
async def login_with_google(id_token: str): try: # 验证Google登录生成的Firebase ID Token decoded_token = auth.verify_id_token(id_token) uid = decoded_token["uid"] # 获取已注册的用户信息(首次登录时Firebase已自动创建用户) user = auth.get_user(uid) return { "message": "Google login successful", "uid": user.uid, "display_name": user.display_name, "email": user.email } except auth.InvalidIdTokenError: raise HTTPException(status_code=400, detail="Invalid Google ID token") except auth.UserNotFoundError: raise HTTPException(status_code=404, detail="User not found") except Exception as err: raise HTTPException(status_code=500, detail=f"Google login failed: {str(err)}") from err
Facebook登录/注册处理函数
async def login_with_facebook(id_token: str): try: # 验证Facebook登录生成的Firebase ID Token decoded_token = auth.verify_id_token(id_token) uid = decoded_token["uid"] # 获取已注册的用户信息(首次登录时Firebase已自动创建用户) user = auth.get_user(uid) return { "message": "Facebook login successful", "uid": user.uid, "display_name": user.display_name, "email": user.email } except auth.InvalidIdTokenError: raise HTTPException(status_code=400, detail="Invalid Facebook ID token") except auth.UserNotFoundError: raise HTTPException(status_code=404, detail="User not found") except Exception as err: raise HTTPException(status_code=500, detail=f"Facebook login failed: {str(err)}") from err
关键说明
- 自动注册逻辑:用户首次通过Google/Facebook登录时,Firebase会自动在Auth系统中创建用户账户,无需后端手动调用
auth.create_user。 - 账户关联:若用户之前已通过邮箱密码注册,且第三方登录的邮箱与已注册邮箱一致,Firebase会自动关联两个账户,用户可通过任意方式登录。
- Token验证:
auth.verify_id_token会自动校验Token的签名、过期时间、受众等信息,确保凭证合法有效。
内容的提问来源于stack exchange,提问作者ProxilityProblemSolver
相关产品推荐
相关产品推荐

