Docs 菜单
Docs 主页
/ /
Atlas App Services
/ /

Google 身份验证

在此页面上

  • Overview
  • 在 Google API 控制台中设置项目
  • 在 Google API 控制台中创建项目
  • 生成 OAuth 客户端档案
  • 配置 Google 身份验证提供者
  • 在 App Services 中配置
  • 示例

Google身份验证提供者允许用户通过 Google登录{ 使用现有 Google 帐户登录 。当用户登录时,Google 会为Atlas App Services提供 OAuth2 0。 访问权限令牌 为用户。App Services使用该令牌来识别用户身份,并代表用户从 Google API访问权限已批准的数据。

下图展示了 OAuth 逻辑流程:

OAuth 流程图

在 App Services 中配置 Google 身份验证之前,您必须在 Google API Console 中设置项目。按照 SDK 的特定步骤,在 Google API Console 中设置 Google 身份验证。

Google 身份验证提供者需要在 Google API 控制台中建立一个项目,以管理身份验证和用户权限。以下步骤将逐步介绍创建项目、生成 OAuth 凭证以及配置提供程序以与项目连接。

1

请按 Google 的官方指南创建新 GCP 项目。

2

注意

对于 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
https://services.cloud.mongodb.com/api/client/v2.0/auth/callback
Virginia
(us-east-1)
https://us-east-1.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Oregon
(us-west-2)
https://us-west-2.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Ireland
(eu-west-1)
https://eu-west-1.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Frankfurt
(eu-central-1)
https://eu-central-1.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Mumbai
(ap-south-1)
https://ap-south-1.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Singapore
(ap-southeast-1)
https://ap-southeast-1.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
Sydney
(ap-southeast-2)
https://ap-southeast-2.aws.services.cloud.mongodb.com/api/client/v2.0/auth/callback
3

要将您的 GCP 项目连接到 App Services,请将您在上一步中生成的 OAuth 2.0 Client IDClient Secret 添加到您的身份验证提供者配置中。

注意

确保将 Web 应用程序凭证添加到提供者配置中。如果改为添加 iOS 凭证,则 Google 身份验证将失败。

您可以通过从 Authentication 页面选择 Google,从 App Services 用户界面启用和配置 Google 身份验证提供者。

要使用 App Services CLI 启用和配置 Google 身份验证提供程序,请在 /auth/providers.json 中为其定义一个配置对象

Google 提供商配置采用以下形式:

/auth/providers.json
{
"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 SecretSecret 名称。

有关为GCP项目设置 OAuth 凭证的信息,请参阅在 Google API Console 中设置项目。

Metadata Fields
metadata_fields

可选。描述经过身份验证的用户的字段列表,您的应用程序将通过 Google Identity API 请求这些字段。

默认情况下,将省略所有元数据字段,并且可以逐个字段进行要求。用户必须明确授予应用访问每个必填字段的权限。如果某个特定用户需要元数据字段并且该元数据字段存在,则该元数据字段将包含在其用户对象中。

如需从导入/导出配置文件中获取元数据字段,可在 metadata_fields 数组中为该字段添加一个条目。每个条目都应是以下格式的文档:

{ name: "<metadata field name>", required: "<boolean>" }
Redirect URIs
redirect_uris

对于 Web 应用程序是必需的。允许的重定向 URI 列表。

用户在 Google 上完成身份验证流程后,App Services 会将其重定向回指定的重定向 URI,或者,如果未指定重定向 URI,则重定向回他们发起身份验证请求的 URL。App Services 只会将用户重定向到与此列表中的条目完全匹配的 URI,包括协议和所有尾部斜杠。

Domain Restrictions
domain_restrictions

可选。用户帐户的已批准列表。

如果指定,提供商会检查用户在 Google 上的主电子邮件地址的域,并且在该域与此列表中的条目匹配时才允许他们进行身份验证。

例如,如果列出 example1.comexample2.com,则允许主要电子邮件为 joe.mango@example1.com 的 Google 用户登录,而不允许主要电子邮件为 joe.mango@example3.com 的用户登录。

注意

如果您指定了任何域限制,则还必须在 Metadata Fields 设置中输入电子邮件地址字段。

OpenID Connect
config.openId

可选。默认为 false

如果列出 true,提供商将使用 OpenID Connect 对用户进行身份验证。

重要

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 的文档:

后退

Facebook