第三方登录
- 全球地域
- 中国地域
使用谷歌登录(可选)
终端用户可选择使用谷歌账户登录 RainMaker 移动应用。
本节将介绍如何为终端用户配置谷歌登录。
准备工作
- 已创建谷歌开发者账户,网址为 https://console.developers.google.com/)。
- 已部署 ESP-RainMaker-Core。
- 已创建自定义域名(请参考配置客户域名)。
配置谷歌应用客户端
配置谷歌开发者账号
-
使用谷歌开发者账号登陆谷歌 API 控制台,请使用网址
https://console.developers.google.com/。 -
登录谷歌开发者控制台后,会看到以下窗口。

-
要创建谷歌 API 控制台项目,请点击左上角标题栏旁的 ▼ 图标,如下图所示。
-
在跳出的窗口中,点击右上角的
NEW PROJECT。

- 输入项目名称并点击
CREATE。

项目创建完成后,需要配置 OAuth 授权界面。下面介绍如何配置 OAuth 授权。
注意:你需要对新创建的项目进行配置。 如果你的谷歌开发者账号有多个项目,请从项目列表中选择新创建的项目,再点击左上角标题栏中的 ▼ 图标。
- 前往谷歌 API 控制台,在左边的导航窗格中,点击
OAuth consent screen。

- 选择
User Type为External,然后点击CREATE。

- 在
App information部分,填写App name和User support email字段。你也可以填写Application Home Page、Application Privacy Link、Application Terms of Service Link等可选信息。

- 在
Authorized domains部分,点击ADD DOMAIN。

- 输入域名 amazoncognito.com,如下图所示。

- 在
Developer contact information部分,输入有效的电子邮件地址,该地址为开发者的联系信息。

- 点击
SAVE AND CONTINUE。

- 然后再次点击
SAVE AND CONTINUE。

- 检查改动,如果无误,点击
BACK TO DASHBOARD。

- 接着需要获取 OAuth 2.0 客户端凭证。前往谷歌 API 控制台,在左边的导航窗格中,点击
Credentials。

- 点击
+ CREATE CREDENTIALS并选择OAuth client ID。

- 在
Application type字段中选择Web Application。

- 在
Name字段中输入你 OAuth 客户端的名字。 - 在
Authorized JavaScript origins部分,点击ADD URI。

标准 RainMaker
- 输入你的 Amazon Cognito 域名
https://<your-company-domain>.auth.<aws-region>.amazoncognito.com, 如下所示。
该域名可通过配置 Cognito 域名 获取。
OAuth-only RainMaker
- 输入 HTTP 基础 URL(不含阶段)
- 参考示例
https://<API gateway Id>.execute-api.<AWS-Region>.amazonaws.com

- 在
Authorized redirect URIs部分,点击ADD URI。

标准 RainMaker
- 输入你的 Amazon Cognito 域名
https://<your-company-domain>.auth.<aws-region>.amazoncognito.com/oauth2/idpresponse,如下图所示。
该域名可通过配置 Cognito 域名 获取。
记得在自定义的 Cognito 域后面添加 /oauth2/idpresponse。
OAuth-only RainMaker
- 获取 HTTP API 端点。
- 重定向 URI 为
{HTTP API Endpoint}/cognitocallback
:::

-
点击
CREATE。 -
在 OAuth 客户端对话框中,找到
Client ID和Client Secret,记下这些值以备后用。

至此,你已完成谷歌应用客户端配置。
在 RainMaker 管理面板中将谷歌配置为身份 提供商
- 用管理员账号登录 RainMaker 管理面板,打开
Deployment Settings。

- 打开
Identity Providers标签页。

-
点击
+图标,添加身份供应商配置。 -
从
Identity Provider下拉菜单中选择Google。 -
添加前面步骤中提到的
Client ID和Client Secret。

将谷歌启用为身份供应商
此功能与 OAuth-only RainMaker 无关。
- 用管理员账户登录 RainMaker 管理面板,打开
Deployment Settings。

- 打开
Cognito Configurations标签页。

- 根据自身需求,为客户端启用
google身份提供商。启用该选项后,用户可以使用谷歌账户登录客户端。
配置回调 URL(重定向 URI)
回调 URL 指明了用户使用第三方认证成功登录后将被重定向的网页。用户使用第三方认证服务成功注册后,将被重定向至这些网页之一。
若需要将用户重定向至手机应用,则应为该应用设置回调 URL。为手机应用设置回调 URL(重定向 URI),请参考以下小节:
在 RainMaker 管理面板中配置回调 URL,请参考配置 Cognito 回调 URL。
验证谷歌登录
OAuth-only RainMaker 尚不支持此功能。
本节将介绍如何验证谷歌登录是否已配置成功。
- 登录 AWS 控制台,前往
Amazon Cognito>User pools,获取用户池列表。

- 点击
rainmaker-user-email-mobile-pool。

- 前往
App integration>App Client Lists。

- 点击
rainmaker-user-email-mobile-pool-client,此处可以查看应用客户端的相关信息。

- 向下滚动页面并点击
View Hosted UI。

- 在跳出的窗口中,可以看到以下选项:

- 点击
Continue with Google。

- 输入你的电子邮件地址和密码。

- 点击
Next,你将被重定向到 Cognito 应用客户端中配置好的回调 URL,并且可以在浏览器网址栏中查看验证码。

注意:本示例已将回调 URL 设置为乐鑫官网主页网址,因此会被重定向至该页面。
- 现在要获取访问令牌,请调用 token API。使用 Token URL 获取 token URL。
POST <Token URL>
Headers:
Content-Type: application/x-www-form-urlencoded
Body:
grant_type=authorization_code
&client_id=<CLIENT_ID>
&code=<AUTHORIZATION_CODE>
&redirect_uri=<REDIRECT_URI>
其中:
CLIENT_ID:应用客户端的客户端 ID [参见此处](/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/faq-deployment/faq-generic.md#在哪里可以找到第三方集成和手机应用的-client-id-和回调-url)
REDIRECT_URI:上述获取代码的回调 URL
AUTHORIZATION_CODE:你在浏览器中获得的代码
- 你应该在响应中获得访问令牌和刷新令牌。
使用苹果登录(可选)
终端用户可使用苹果账号登录 RainMaker 移动应用。
本节将介绍如何为终端用户配置苹果登录。
准备工作
- 已创建苹果开发者账号,并已注册开发者项目 (Apple Developer Program)。网址为 https://developer.apple.com/programs/enroll/)。
- 已部署 ESP-RainMaker-Core。
- 已创建自定义域(请参阅配置自定义域名)。
配置苹果登录
配置苹果开发者账号
-
若尚未创建苹果应用 ID,请在苹果开发者控制台创建应用 ID。
-
点击左侧
Keys。 -
点击
+图标添加新密钥。

- 在
Key Name字段输入密钥的名称,并在下方选择Sign in with Apple。

-
在
Sign in with Apple一栏右侧点击Configure。 -
在
Primary App ID字段选择应用 ID,格式为 "<teamId>.<bundleId>"。其中 Team ID 值和 Bundle ID 值请参见步骤 1。

-
点击
Save保存配置。 -
在
Register a New Key页面,点击Continue。 -
检查更改,并点击
Register以创建新的密钥。 -
记下密钥 ID 并下载密钥文件,在 RainMaker 管理面板中配置苹果登录时将会用到这些内容。
-
点击
Identifiers,然后点击+图标。

- 从列表中选择
Service IDs并点击Continue。

-
在
Register a Services ID页面,选择Sign in with Apple以启用服务,然后选择Configure。 -
在
Identifier和Description字段为服务填写标识符和描述。

-
记下标识符,即服务 ID (Services ID)。在 RainMaker 管理面板中配置苹果登录时将会用到这一 ID。
-
点击
Register以注册服务 ID。

-
重新回到
Identifiers页面,点击上述步骤中已经注册的服务 ID。 -
启用
Sign In With Apple,然后点击Configure。

- 配置域名。
标准 RainMaker
- 输入 Amazon Cognito 域名
https://<your-company-domain>.auth.<aws-region>.amazoncognito.com,如下所示。
该域名可通过配置 Cognito 域名 获取。
OAuth-only RainMaker
- 输入 HTTP 基础 URL(不含阶段)
- 返回 URL。
标准 RainMaker
- 输入 Amazon Cognito 域名
https://<your-company-domain>.auth.<aws-region>.amazoncognito.com/oauth2/idpresponse,如下所示。
该域名可通过配置 Cognito 域名 获取。
记得在自定义的 Cognito 域后面添加 /oauth2/idpresponse。
OAuth-only RainMaker
- 获取 HTTP API 端点。
- 重定向 URI 为
{HTTP API Endpoint}/cognitocallback。此处的域名为 AWS Cognito 中创建的域名。返回 URL 应为https://<domain>/oauth2/idpresponse。
:::

在 RainMaker 管理面板中将苹果配置为身份提供商
- 用管理员账号登录 RainMaker 管理面板,打开
Deployment Settings。

- 打开
Identity Providers标签页。

- 点击
+图标,添加身份提供商配置。 - 从
Identity Provider下拉菜单中选择SignInWithApple。 - 添加
Client ID,即"配置苹果开发者账号"小节步骤 15 中提到的服务 ID。 - 在
Provider Name字段输入 "Apple"。 - 在
Key ID字段输入"配置苹果开发者账号"小节步骤 1 和 10 中提到的密钥 ID。 - 在
Team ID字段输入"配置苹果开发者账号"小节步骤 1 中提到的团队 ID。详情请参阅创建 App ID。 - 在
Private Key字段输入"配置苹果开发者账号"小节步骤 10 中所下载文件的内容。

将苹果启用为身份提供商
此功能与 OAuth-only RainMaker 无关。
- 用管理员账户登录 RainMaker 管理面板,打开
Deployment Settings。

- 打开
Cognito Configurations标签页。

- 根据自身需求,为客户端启用
signinwithapple身份提供商。启用该选项后,用户可以使用苹果账户登录客户端。
配置回调 URL(重定向 URIs)
回调 URL 指明了用户使用第三方认证成功登录后将被重定向的网页。用户使用第三方认证服务成功注册后,将被重定向至这些网页之一。
若需要将用户重定向至手机应用,则应为该应用设置回调 URL。设置 iOS 应用回调 URL(重定向 URI)的方法可以参考创建重定向 URL。
在 RainMaker 管理面板中配置回调 URL,请参考配置 Cognito 回调 URL。
验证苹果登录
对于OAuth-only RainMaker,请参考此文。
本节介绍如何验证苹果登录是否已配置成功。
- 登录 AWS 控制台,前往
Amazon Cognito>User pools,获取用户池列表。

- 点击
rainmaker-user-email-mobile-pool。

- 前往
App integration>App Client Lists。

- 点击
rainmaker-user-email-mobile-pool-client,此处可以查看应用客户端的相关信息。

- 向下滚动页面并点击
View Hosted UI。

- 在跳出的窗口中,可以看到以下选项:

-
点击
Continue with Apple。 -
输入你的苹果账号 ID和密码。
-
点击
Next,你将被重定向到 Cognito 应用客户端中配置好的回调 URL,并且可以在浏览器网址栏中查看验证码。

注意:本示例已将回调 URL 设置为乐鑫官网主页网址,因此会被重定向至该页面。
- 现在要获取访问令牌,请调用 token API。使用 Token URL 获取 token URL。
POST <Token URL>
Headers:
Content-Type: application/x-www-form-urlencoded
Body:
grant_type=authorization_code
&client_id=<CLIENT_ID>
&code=<AUTHORIZATION_CODE>
&redirect_uri=<REDIRECT_URI>
其中:
CLIENT_ID:应用客户端的客户端 ID [参见此处](/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/faq-deployment/faq-generic.md#在哪里可以找到第三方集成和手机应用的-client-id-和回调-url)
REDIRECT_URI:上述获取代码的回调 URL
AUTHORIZATION_CODE:你在浏览器中获得的代码
- 你应该在响应中获得访问令牌和刷新令牌。
电子邮件转发服务
苹果私人邮件转发服务 适用于重视隐私的用户,使其在创建账户时保持个人邮箱地址的私密性。使用转发服务向用户发送电子邮件,你需要注册出站电子邮件域名、子域名或电子邮件地址。此外,你还必须为所有注册域名创建 SPF (Sender Policy Framework) 的 DNS TXT 记录。
请参考以下步骤,查看你的组织电子邮件域名是否已创建 SPF 记录:
- 访问 https://dnschecker.org/spf-record-validation.php。
- 输入你的电子邮件域名并点击
validate。 - 向下滚动页面。如果看到的页面如下图所示,则代表你的电子邮件域名已创建 SPF 记录。

请参考以下步骤添加域名:
- 在
Certificates, Identifiers & Profiles中,从侧边栏中选择More,然后点击Configure Sign in with Apple for Email Communication。 - 在
Email Sources部分,点击左上角的添加按钮+。 - 输入用于电子邮件通信的域名、子域名和唯一电子邮件地址,不同名称之间用逗号隔开,然后点击
Next。 - 确认你输入的电子邮件域名信息无误后,点击
Register。 - 如果你注册的电子邮件域名已通过 SPF 验证,则将看到以下内容:

使用微信登录(可选)
准备工作
在中国地域 (cn-north-1) 部署 RainMaker。
创建开发者账号
- 访问 https://open.weixin.qq.com/。
- 如果尚未注册,请注册一个已验证的企业账号。
- 你需要支付一笔一次性的审核费用(在撰写本文档时约为 300 人民币)。
- 详细步骤如下:
https://developers.weixin.qq.com/doc/oplatform/cn/Third-party_Platforms/2.0/operation/open/create.html - 审核需要 3~5 个工作日。
- 审核通过后,你的账号将如下所示:

在微信中创建客户端
应用客户端
- 安卓用户需要提供以下信息:

你需要提供 APK 签名证书的 MD5 摘要。
- 苹果用户需要提供以下信息:

你需要为应用提供一个通用链接。请参考以下步骤创建通用链接。
- 应用类型为“工具-设备管理”
- 参考下列步骤:
https://developers.weixin.qq.com/doc/oplatform/cn/Third-party_Platforms/2.0/operation/open/create.html - 审核需要 1~7 个工作日。
- 审核通过后,你将获得 AppID 和 AppSecret。