返回技能市场
开发运维 安全

firebase-auth-basics

@admin/firebase-auth-basics

Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.

admin 热度 422v0.0.1

前置条件

  • Firebase Project:通过
  • npx -y firebase-tools@latest projects:create 创建(参见 firebase-basics)。

  • Firebase CLI:已安装并登录(参见 firebase-basics)。

核心概念

Firebase Authentication 提供后端服务、易于使用的 SDK,以及现成的 UI 库,用于对用户进行身份验证,使其登录你的应用。

用户

用户是可以登录你的应用的实体。每个用户都由唯一 ID(uid)标识,并且保证在所有提供方之间唯一。用户属性包括:

  • uid:唯一标识符。
  • email:用户的电子邮件地址(如果可用)。
  • displayName:用户的显示名称(如果可用)。
  • photoURL:用户照片的 URL(如果可用)。
  • emailVerified:布尔值,指示电子邮件是否已验证。

身份提供方

Firebase Auth 支持多种登录方式:

  • Email/Password:基本的电子邮件和密码身份验证。
  • Federated Identity Providers:Google、Facebook、Twitter、GitHub、
  • Microsoft、Apple 等。

  • Phone Number:基于短信的身份验证。
  • Anonymous:临时访客账户,之后可以关联到永久账户。
  • Custom Auth:与你现有的身份验证系统集成。

推荐将 Google Sign In 作为良好且安全的默认提供方。

令牌

用户登录时,会收到一个 ID Token(JWT)。当向 Firebase 服务(Realtime Database、 Cloud Storage、Firestore)或你自己的后端发出请求时,使用此令牌标识用户。

  • ID Token:短期有效(1 小时),用于验证身份。
  • Refresh Token:长期有效,用于获取新的 ID 令牌。

工作流

1. 预配

选项 1。通过 CLI 启用身份验证

仅可通过 CLI 启用 Google Sign In、匿名身份验证和电子邮件/密码身份验证。对于其他提供方,请使用 Firebase Console。

通过在 firebase.json 中添加一个 'auth' 块来配置 Firebase Authentication:

{
  "auth": {
  "authorizedDomains": ["localhost"],
    "providers": {
      "anonymous": true,
      "emailPassword": true,
      "googleSignIn": {
        "oAuthBrandDisplayName": "Your Brand Name",
        "supportEmail": "support@example.com"
      }
    }
  }
}
[!NOTE] 如果 Google Sign-In 弹窗打开后立即关闭,并显示错误
[firebase_auth/unauthorized-domain],则表示该域名未获授权。对于本地开发,请确保
localhost 包含在 Firebase Console 的 Authorized Domains 列表中,或通过
firebase.json 中的 authorizedDomains 字段包含。 CRITICAL:不要在
Authorized Domains 列表中包含协议或端口号(例如,使用 localhost
不要使用 http://localhost:9090)。

CRITICAL:配置 firebase.json 后,你 MUST 将身份验证配置部署到 Firebase 后端,更改才能生效。这对于 Google Sign-In、电子邮件/密码等身份验证提供方为应用平台自动生成所需的 OAuth 客户端至关重要。运行:

npx -y firebase-tools@latest deploy --only auth

选项 2。在 Console 中启用身份验证

在 Firebase Console 中启用其他提供方。

  1. 前往
  2. https://console.firebase.google.com/project/_/authentication/providers

  3. 选择你的项目。
  4. 启用所需的登录提供方(例如,Email/Password、Google)。

2. 客户端设置与使用

Web 参见 [references/client_sdk_web.md](references/client_sdk_web.md)。

Flutter 参见 [references/flutter_setup.md](references/flutter_setup.md)。 Android (Kotlin) 参见 [references/client_sdk_android.md](references/client_sdk_android.md)。

3. 安全规则

使用 Firestore/Storage 规则中的 request.auth 保护你的数据。

参见 [references/security_rules.md](references/security_rules.md)。

qianwen skills install @admin/firebase-auth-basics