跳转至

接收密码变更通知

当用户在云防护平台修改或找回密码后,平台可以把最新密码推送到您的自有系统,避免两侧密码不一致导致一键登录失败。

适用场景

前提条件

  • 已能登录代理商控制台。
  • 已准备可被公网访问的回调 URL。
  • 已准备一对 RSA 密钥:公钥交给平台,私钥留在自有系统用于解密 newPassword。

注意:这里配置的是您自己的公钥,与调用平台接口时使用的平台公钥不是同一把。

配置步骤

步骤一:打开个人中心

  1. 登录代理商控制台。
  2. 单击右上角用户名。
  3. 单击 个人中心。

页面会展示 RSA 公钥 和 密码变更通知地址。

步骤二:配置 RSA 公钥

  1. 在 RSA 公钥 区域单击 修改。
  2. 将 X509 格式公钥的 Base64 内容粘贴到输入框。请去掉 -----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----。
  3. 可选:在「用于加密的字符串」中输入测试文本,单击 测试 RSA 公钥,确认加密结果可用您的私钥解开。
  4. 单击 确定。

保存成功后,再次打开该弹窗应能看到已保存的公钥。

步骤三:配置密码变更通知地址

  1. 在 密码变更通知地址 区域单击 修改。
  2. 填写完整回调地址,例如 https://{自有域名}/callback/password。
  3. 单击 确定。

保存成功后,个人中心会显示该地址。未配置地址时,平台不会发送通知。

通知请求

密码在平台落库成功后,若已配置通知地址,平台会异步发起 GET 请求,不等待您的响应。通知失败不影响用户改密结果。

字段含义

参数名称 类型 说明
email String 用户邮箱,明文。未绑定邮箱时可能为空。
phone String 用户手机号,明文。未绑定手机号时可能为空。
newPassword String 新密码明文经您配置的 RSA 公钥加密后的密文。算法为 PKCS#1,编码为 URL-Safe Base64。

实际请求形态

当前服务端按如下方式拼接 URL(email 与 phone 之间没有 &):

GET {通知地址}?email={email}phone={phone}&newPassword={密文}

示例:

GET https://{自有域名}/callback/password?email=user@example.comphone=13800138000&newPassword={RSA密文}

注意:控制台页面上的示例写成 ?email=&newPassword=&phone=,与当前实现不一致。请按实际到达的 Query 解析:先读取 newPassword,再从 email 参数值中拆出邮箱和 phone= 后面的手机号。

请使用与配置到个人中心的公钥配对的私钥解密 newPassword。

接入方处理建议

  1. 对外网暴露的回调接口仅用于接收该通知。
  2. 从 Query 中取出 email、phone、newPassword。
  3. 用私钥解密 newPassword,得到明文密码。
  4. 按邮箱或手机号定位本地账号并更新密码。
  5. 尽快返回 HTTP 2xx。平台不会根据响应重试。

验证结果

  1. 确认个人中心已显示通知地址和 RSA 公钥。
  2. 在用户中心对该测试账号执行修改密码或找回密码。
  3. 自有回调接口收到 GET 请求,且能解密出新密码。
  4. 使用更新后的密码调用 获取一键登录码 应返回 code 为 200。

常见问题

用户改密后没有收到通知

请确认个人中心已保存通知地址,且该地址可被公网访问。公钥格式不正确或加密失败时,平台只记录「发送失败」,改密仍然成功。

收到请求但无法解密 newPassword

请确认解密使用的是与个人中心公钥配对的私钥,而不是平台提供的那把公钥对应的密钥。

解析不到 phone 参数

当前实现把 email 与 phone 连在一起,标准 Query 解析可能把整段读进 email。请按上文「实际请求形态」拆分。

相关文档