添加 WhatsApp OTP 登录¶
在项目中启用 WhatsApp OTP¶
Authany 让您的用户可以通过 WhatsApp OTP 免密登录。
要在管理台中启用此功能:
- 进入 身份验证 > 登录方式,我们将在此页面上做一些修改。
- 在 选择登录方式 的顶部区域,选择 手机。
- 在 选择登录方式 的 身份验证 部分,选择 无密码。
- 在下方的标签页区域,切换到 验证与 OTP 标签页。
- 在 验证手机号方式 下拉菜单中,选择 WhatsApp 或短信 或 仅 WhatsApp。
- 点击左上角的 保存。
当用户使用手机号登录时,会收到一条包含 OTP 的 WhatsApp 消息。用户可以点击「复制验证码」按钮复制验证码,并用该验证码登录。
如果启用了「通过 WhatsApp 或短信验证手机号」,用户可以在登录页面切换为通过短信接收 OTP。
设置您自己的 WhatsApp Business 账号¶
默认情况下,WhatsApp OTP 通过 Authany 的共享发送号码发送。如果您希望使用自己的 WhatsApp 号码发送,则需要一个 WhatsApp Business 账号和一个 Meta 应用。本指南将介绍如何为 Authany OTP 身份验证设置 WhatsApp Business 号码。
您需要准备一个未使用过的手机号和一个 Facebook 账号。
步骤 1:创建商业资产组合¶
注意
如果您已经有商业资产组合,可以跳过此步骤
- 在桌面浏览器中访问 business.facebook.com。您也会用这个地址登录 Meta Business Suite。如果您已经可以访问 Meta Business Suite,也可以点击左侧菜单顶部的下拉菜单,然后直接跳到步骤 4。
- 点击 创建账号。
- 登录您的个人 Facebook 账号。如果您还没有账号,点击 创建账号 进行注册。
- 点击 创建商业资产组合。
- 填写您的商业信息。
- 商业资产组合名称:应与您企业或机构的公开名称一致,因为它会在 Meta 各处显示,且不能包含特殊字符。
- 您的姓名。
- 商业邮箱:Meta 会使用此邮箱与您联系有关商业事务的信息,客户不会看到该邮箱。
- 点击 提交 或 创建 来创建您的资产组合。您会收到一封邮件,要求确认您的商业邮箱地址。
步骤 2:将手机号注册为新的 WhatsApp Business 账号¶
- 进入 Meta Business Suite 中的「设置」
-
在「账号」下,进入「WhatsApp 账号」,然后选择「创建新的 WhatsApp Business 账号」
3. 填写显示名称并设置头像,这些内容将展示给您的用户 4. 为该账号使用一个尚未注册过的手机号,按照屏幕提示验证手机号 5. 在此商业资产组合中设置付款方式,并将 WhatsApp 账号与该付款方式关联。
步骤 3:设置消息模板¶
- 进入 Meta Business Suite 中的「WhatsApp 管理工具」,如果导航栏中没有该项,可以在「所有工具」中搜索 WhatsApp
-
进入「管理模板」,点击「创建模板」,并确认右上角下拉菜单中选中了正确的 WhatsApp Business 账号。
3. 选择「身份验证」类型
4. 为每种您希望支持的语言,创建一个名为
one_time_password的模板 1. 在 验证码发送设置 下选择「复制验证码」 2. 在 内容 下选择「添加安全提示」 3. 将有效期设置为 10 分钟 5. 添加完所需语言后,模板页面应如下所示

步骤 4:设置应用¶
在此步骤中,我们将创建一个「Meta 应用」
- 访问 https://developers.facebook.com/apps/ 并创建一个新应用
- 填写 Meta 应用的标识符和您的联系邮箱
- 在「使用场景」中,选择「其他」
- 应用类型选择「Business」
- 关联到步骤 1 中创建的商业资产组合。
-
创建应用后,在「为您的应用添加产品」中选择「WhatsApp」
7. 在「API 设置」中,点击「生成访问令牌」,并选择我们在步骤 2 中创建的 WhatsApp 账号。然后点击继续。
8. 在「发件人」下拉菜单中,选择我们在步骤 2 中注册的手机号。记下「电话号码 ID」和「WhatsApp Business 账号 ID」。如果您在「收件人」中输入一个有效号码,应该能收到一条测试用的「Hello World」消息。 9. 进入「应用设置」,添加「隐私政策」链接;并记下此页面上的 「App ID」 和 「App secret」。
10. 将应用模式切换为「正式上线」(可能需要填写商业信息以供审核)。
步骤 5:设置「系统用户」¶
- 返回 Meta Business Suite business.facebook.com
- 进入「设置」>「用户」>「系统用户」
- 添加一个新的系统用户
- 为步骤 4 中创建的应用分配「开发应用」权限
- 为步骤 2 中创建的 WhatsApp 账号分配「消息模板(仅查看)」和「电话号码(查看和管理)」权限
- 点击「生成令牌」并记下生成的令牌。
提示
现在,请将以下信息提供给 Authany 团队:
- 电话号码 ID
- WhatsApp Business 账号 ID
- 系统用户的访问令牌
- App ID
- App Secret
我们将协助您在后端完成连接配置
步骤 6:设置自动短信回退¶
为了在 WhatsApp 发送失败时支持自动回退到短信,我们需要在 Meta 和 Authany 服务器之间设置一个 webhook,用来检查消息的发送状态。
说明
您可以将应用访问权限共享给 Authany 团队,以便获得此步骤的协助。
- 返回 https://developers.facebook.com/apps/,管理我们创建的应用
- 在 WhatsApp 下,进入「配置」
- 填写以下内容
- 回调 URL:
https://{authgear_endpoint}/whatsapp/webhook - 验证令牌:一个随机字符串
- 例如使用
openssl rand -hex 16命令生成一个 32 字符的序列
- 例如使用
- 将 「验证令牌」 共享给 Authany 团队,用于后端配置
-
点击「验证并保存」
6. 在「Webhooks」页面中,在「产品」下选择「WhatsApp Business Account」,然后启用
messageswebhook 订阅。 7. 订阅 WhatsApp Business 账号 1. 此步骤用于让您的 Facebook 应用能够接收来自您 WhatsApp Business 账号的通知。
请注意,执行以下步骤时,您必须使用同时拥有 Facebook 应用和 WhatsApp Business 账号访问权限的账号登录: 1. 访问 https://developers.facebook.com/tools/explorer 2. 在「Meta App」中,选择您的 Facebook 应用 3. 在「User or Page」中,选择「User Token」 4. 在「Add a permission」中,选择: * whatsapp_business_management * whatsapp_business_messaging 5. 点击 Generate Access Token 6. 然后,将请求路径填写为{WABA_ID}/subscribed_apps。将{WABA_ID}替换为您的 WhatsApp Business 账号 ID。 7. 将请求方法改为POST。 8. 点击「Submit」 9. 将请求方法改为GET,提交后确认已创建新条目。您应该会看到类似这样的条目:
{
"whatsapp_business_api_data": {
"link": "https://www.facebook.com/games/?app_id=1234567890987654",
"name": "YOUR APP NAME",
"id": "1234567890987654"
}
},
提示
现在,请将以下信息提供给 Authany 团队:
- 电话号码 ID
- WhatsApp Business 账号 ID
- 系统用户的访问令牌
- App ID
- App Secret
- 验证令牌
我们将协助您在后端完成连接配置