Google 身份验证
在此页面上
Overview
Google身份验证提供者允许用户通过 Google登录{ 使用现有 Google 帐户登录 。当用户登录时,Google 会为Atlas App Services提供 OAuth2 0。 访问权限令牌 为用户。App Services使用该令牌来识别用户身份,并代表用户从 Google API访问权限已批准的数据。
下图展示了 OAuth 逻辑流程:

在 Google API 控制台中设置项目
在 App Services 中配置 Google 身份验证之前,您必须在 Google API Console 中设置项目。按照 SDK 的特定步骤,在 Google API Console 中设置 Google 身份验证。
Google 身份验证提供者需要在 Google API 控制台中建立一个项目,以管理身份验证和用户权限。以下步骤将逐步介绍创建项目、生成 OAuth 凭证以及配置提供程序以与项目连接。
在 Google API 控制台中创建项目
请按 Google 的官方指南创建新 GCP 项目。
生成 OAuth 客户端档案
注意
对于 iOS 客户端应用程序,您需要同时创建 Web OAuth 客户端 ID 和 iOS OAuth 客户端 ID。前者由 App Services 使用,而后者将由应用本身使用。
请参阅本节的 Web标签页,了解有关为App Services创建 Web应用程序客户端ID的说明。
请按照 Google 支持指南的设置 OAuth 2.0 为您的项目进行设置。
配置 iOS 应用程序 Client ID 时,请使用以下值:
Application Type | iOS 版 |
Name | 要与此 Client ID 关联的名称。 |
Bundle ID | iOS 应用程序的捆绑包 ID。您可以在 XCode 中应用程序的主要目标的 General 标签页上查找此值。 |
配置 Android 应用程序 Client ID 时,请使用以下值:
Application Type | Android |
Name | 要与此 Client ID 关联的名称。 |
Signing-certificate Fingerprint | 您的应用程序签名证书的 SHA-1 指纹。有关生成此值的说明,请参阅对客户端进行身份验证。 |
您需要创建一个 Web应用程序Client ID并提供多个与App Services相关的值。
对于Authorized JavaScript Origins ,输入以下URL:
https://services.cloud.mongodb.com
对于Authorized Redirect URIs ,输入与应用程序程序的部署地区相对应的App Services身份验证回调URL 。 下表列出了每个地区的回调URL :
区域 | App Services 身份验证回调 URL | |
---|---|---|
Global |
| |
Virginia ( us-east-1 ) |
| |
Oregon ( us-west-2 ) |
| |
Ireland ( eu-west-1 ) |
| |
Frankfurt ( eu-central-1 ) |
| |
Mumbai ( ap-south-1 ) |
| |
Singapore ( ap-southeast-1 ) |
| |
Sydney ( ap-southeast-2 ) |
|
配置 Google 身份验证提供者
要将您的 GCP 项目连接到 App Services,请将您在上一步中生成的 OAuth 2.0 Client ID 和 Client Secret 添加到您的身份验证提供者配置中。
注意
确保将 Web 应用程序凭证添加到提供者配置中。如果改为添加 iOS 凭证,则 Google 身份验证将失败。
在 App Services 中配置
您可以通过从 Authentication 页面选择 Google,从 App Services 用户界面启用和配置 Google 身份验证提供者。
要使用 App Services CLI 启用和配置 Google 身份验证提供程序,请在 /auth/providers.json
中为其定义一个配置对象。
Google 提供商配置采用以下形式:
{ "oauth2-google": { "name": "oauth2-google", "type": "oauth2-google", "disabled": <boolean>, "config": { "clientId": <string>, "openId": <boolean> }, "secret_config": { "clientSecret": <string> }, "metadata_fields": [<document>, ...], "redirect_uris": [<string>, ...], "domain_restrictions": [<string>, ...] } }
Google 身份验证提供者具有以下配置选项:
字段 | 说明 | |
---|---|---|
Client ID config.clientId | 必需。Google API 控制台中项目的 OAuth 2.0 Client ID(OAuth 2.0 客户端 ID)。 有关为GCP项目设置 OAuth 凭证的信息,请参阅在 Google API Console 中设置项目。 | |
Client Secret secret_config.clientSecret | 必填。通过 Google API Console 存储项目 OAuth 2.0 Client Secret 的 Secret 名称。 有关为GCP项目设置 OAuth 凭证的信息,请参阅在 Google API Console 中设置项目。 | |
Metadata Fields metadata_fields | 可选。描述经过身份验证的用户的字段列表,您的应用程序将通过 Google Identity API 请求这些字段。 默认情况下,将省略所有元数据字段,并且可以逐个字段进行要求。用户必须明确授予应用访问每个必填字段的权限。如果某个特定用户需要元数据字段并且该元数据字段存在,则该元数据字段将包含在其用户对象中。 如需从导入/导出配置文件中获取元数据字段,可在
| |
Redirect URIs redirect_uris | 对于 Web 应用程序是必需的。允许的重定向 URI 列表。 用户在 Google 上完成身份验证流程后,App Services 会将其重定向回指定的重定向 URI,或者,如果未指定重定向 URI,则重定向回他们发起身份验证请求的 URL。App Services 只会将用户重定向到与此列表中的条目完全匹配的 URI,包括协议和所有尾部斜杠。 | |
Domain Restrictions domain_restrictions | 可选。用户帐户的已批准域列表。 如果指定,提供商会检查用户在 Google 上的主电子邮件地址的域,并且在该域与此列表中的条目匹配时才允许他们进行身份验证。 例如,如果列出 注意如果您指定了任何域限制,则还必须在 Metadata Fields 设置中输入电子邮件地址字段。 | |
OpenID Connect config.openId | 可选。默认为 如果列出 重要OpenID Connect 支持因 SDK 而异有关 OpenID Connect 支持的信息,请参阅特定于 SDK 的文档。并非所有 Google 身份验证的 SDK 实施都支持 OpenID Connect,而其他实施则需要。 注意OpenID Connect 不支持元数据字段Google 支持将 OpenID 作为其 OAuth 2.0 实现的一部分,但不提供对 OpenID 身份验证的受限范围的访问权限。这意味着 App Services 无法访问使用 OpenID Connect 进行身份验证的用户的元数据字段。 |
示例
有关演示如何使用 Google 身份验证进行注册和登录的代码示例,请参阅 Realm SDK 的文档: