跳转到主要内容
重定向方式会将用户带到 Didit 托管的验证页面完成验证,然后通过回调 URL 将用户返回您的应用。

何时使用重定向方式

  • 跨设备验证:在桌面端开始,在移动端完成
  • 最大兼容性:适用于所有浏览器,包括较旧的浏览器
  • 集成简单:无需配置 iframe
  • 摄像头问题:当 iframe 的摄像头访问存在问题时

实现

步骤 1 在后端创建会话

会话创建响应中有一个名为 url 的字段,请将该值传递给浏览器。

步骤 2 在前端重定向用户

HTML:
React:
Vue:

处理回调

验证完成后,Didit 会携带查询参数将用户重定向到您的回调 URL:

Next.js 示例

Express.js 示例

Vue Router 示例


在新标签页中打开

如果您希望在用户验证时保持您的应用处于打开状态:
使用新标签页时,请结合 Webhook 来了解验证何时完成。

安全最佳实践

在服务器端验证回调

请将 verificationSessionId 和 status 查询参数视为不可信的界面提示。始终在您的后端确认最终决策,方式是处理 Webhook(推荐),或通过 API 重新获取决策结果:

使用 Webhook

为获得最可靠的集成,请使用 Webhook 将验证结果直接发送到您的后端,无论用户浏览器的行为如何。

跨设备流程

重定向方式天然支持跨设备验证:
  1. 用户在桌面端点击“验证”
  2. 用户被重定向到验证页面
  3. 如有需要,用户可以扫描二维码,在移动端继续操作
  4. 完成后,用户会被重定向到您的回调 URL,由 callback_method(可取值为 initiator、completer 或 both)决定哪台设备进行重定向

故障排查

未收到回调

  1. 确认在创建会话时已正确设置回调 URL
  2. 确保您的回调 URL 可以从互联网访问
  3. 检查该 URL 是否存在拼写错误或编码问题

状态始终显示“已拒绝”

  1. 在 Didit 控制台中检查您的工作流设置
  2. 确认您使用的测试证件有效
  3. 通过 API 查看会话详情,获取具体的拒绝原因

重定向循环

  1. 确保您的回调处理程序不会重定向回验证页面
  2. 检查回调页面是否存在缓存问题
  3. 清除浏览器缓存后重试

示例代码库

GitHub 代码库

在 GitHub 上查看源代码和示例
最后修改于 2026年11月7日