跳转至

接收密码变更通知

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

适用场景

前提条件

  • 已能登录代理商控制台。
  • 已准备可被公网访问的回调 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(emailphone 之间没有 &):

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 中取出 emailphonenewPassword
  3. 用私钥解密 newPassword,得到明文密码。
  4. 按邮箱或手机号定位本地账号并更新密码。
  5. 尽快返回 HTTP 2xx。平台不会根据响应重试。

验证结果

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

常见问题

用户改密后没有收到通知

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

收到请求但无法解密 newPassword

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

解析不到 phone 参数

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

相关文档