Facebook 身份验证
在此页面上
Overview
Facebook身份验证提供者允许用户通过配套的Facebook应用程序使用现有Facebook帐户登录。 当用户登录时, Facebook会向Atlas App Services提供 OAuth2.0 访问权限令牌 为用户。App Services使用该令牌来识别用户身份,并代表用户从Facebook API访问权限已批准的数据。 有关Facebook登录的更多信息,请参阅 应用程序的Facebook登录 。
下图展示了 OAuth 逻辑流程:
配置
您可以通过从Authentication页面选择 Facebook ,从App Services用户界面启用和配置Facebook身份验证提供者程序。
要使用App Services CLI启用和配置Facebook身份验证提供者程序,请在 /auth/providers.json
中为其定义一个配置对象。
Facebook提供商配置采用以下形式:
{ "oauth2-facebook": { "name": "oauth2-facebook", "type": "oauth2-facebook", "disabled": <boolean>, "config": { "clientId": <string> }, "secret_config": { "clientSecret": <string> }, "metadata_fields": [<document>, ...], "redirect_uris": [<string>, ...], "domain_restrictions": [<string>, ...] } }
Facebook 身份验证提供程序具有以下配置选项:
字段 | 说明 | |
---|---|---|
Client ID config.clientId | 必需字段。Facebook 应用的 App ID(应用 ID)。 有关设置Facebook 应用和查找App ID的信息,请参阅设置 Facebook 应用。 | |
Client Secret secret_config.clientSecret | ||
Metadata Fields metadata_fields | 可选。 描述应用程序将从 Facebook Graph API 请求的经过身份验证的用户的字段列表。 默认情况下,将省略所有元数据字段,并且可以逐个字段进行要求。用户必须明确授予应用访问每个必填字段的权限。如果某个特定用户需要元数据字段并且该元数据字段存在,则该元数据字段将包含在其用户对象中。 如需从导入/导出配置文件中获取元数据字段,可在
| |
Redirect URIs redirect_uris | 对于 Web 应用程序是必需的。允许的重定向 URI 列表。 用户在 Facebook 上完成身份验证流程后,App Services 会将其重定向回指定的重定向 URI,或者,如果未指定重定向 URI,则重定向回他们发起身份验证请求的 URL。App Services 只会将用户重定向到与此列表中的条目完全匹配的 URI,包括协议和所有尾部斜杠。 | |
Domain Restrictions domain_restrictions | 可选。用户帐户的已批准域列表。 如果已指定,提供程序会检查用户在 Facebook 上的主要电子邮件地址的域,并且在该域与此列表中的条目匹配时才允许他们进行身份验证。 例如,如果列出了 注意如果您指定了任何域限制,则还必须在 Metadata Fields 设置中输入电子邮件地址字段。 |
设置 Facebook 应用
Facebook 身份验证提供程序需要使用 Facebook 应用来托管身份验证和用户权限。以下步骤将逐步介绍创建应用、设置 Facebook 登录以及配置提供程序以与应用连接。
创建 Facebook 应用
请按 Facebook 的官方指南创建新 Facebook 应用。
将 App Services 添加为有效的 OAuth 重定向 URI
当用户完成 Facebook 应用的登录流程时,他们需要重定向回 App Services。Facebook 登录仅允许用户重定向到预先批准的 URI 列表。
在Facebook Login > Settings页面中,将与应用程序的部署区域相对应的 App Services 身份验证回调 URL 添加到Valid OAuth Redirect URIs列表中。下表列出了各地区的回调 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 ) |
|
配置 Facebook 身份验证提供程序
要将Facebook应用连接到Atlas App Services ,请在 Settings > Basic 页面上找到Facebook应用的 App ID 和 App Secret 值,并将它们添加到身份验证提供者配置中。
示例
有关演示如何使用 Facebook 身份验证进行注册和登录的代码示例,请参阅 Realm SDK 的文档: