You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端WebAuthn认证时Challenge不匹配问题求助

iOS React Native Passkey验证问题:客户端Challenge与服务器不匹配

我正在为iOS开发React Native简易PoC应用,使用react-native-passkey库实现验证器认证,但在通过依赖@simplewebauthn/server的Nest.JS服务器验证客户端认证响应时遇到问题:客户端返回的clientDataJSON中challenge字段与服务器生成的不匹配。

服务器生成的challenge为:

i-1E5Fhg0so0Xd3CInFzHG7EVQfWqazTgf-m26flrsQ

将客户端返回的base64字符串转UTF8并经JSON.parse解析后得到的client data为:

{
  type: 'webauthn.create',
  challenge: 'aS0xRTVGaGcwc28wWGQzQ0luRnpIRzdFVlFmV3FhelRnZi1tMjZmbHJzUQ',
  origin: <已脱敏>
}

origin是EC2实例使用的有效域名,具备认证/断言流程所需的全部端点。我查阅W3C规范得知Apple会在签名前向challenge注入客户端数据哈希,但搞不懂具体细节。想请教下,需要将哪些字节与服务器生成的challenge拼接,才能和iOS应用返回的challenge一致?我原本以为客户端返回的challenge会和服务器生成的完全一致。另外,关于断言签名验证的问题,我已经发布了新的提问。

内容的提问来源于stack exchange,提问作者user26530591

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:33:11