Cod*_*ine 3 javascript django cbor yubico webauthn
我目前正在为 Django 构建一个 AJAX 注册端点,以允许 FIDO2 身份验证(物理硬件密钥登录)。这是来自Yubico 官方 fido2 python 库的示例/文档。
唯一的依赖项是cbor.js
和js-cookie
。服务器端的一切现在都在工作,但是,我在调用该navigator.credentials.create
方法时不断收到此 JavaScript 错误
TypeError: Failed to execute 'create' on
'CredentialsContainer': The provided value is not of
type '(ArrayBuffer or ArrayBufferView)'
Run Code Online (Sandbox Code Playgroud)
编码:
var csrftoken = Cookies.get('csrftoken');
fetch('/register/begin', {
method: 'POST',
headers: {
'X-CSRFToken': csrftoken
}
}).then(function(response) {
if(response.ok) {
return response.arrayBuffer();
}
throw new Error('Error getting registration data!');
}).then(CBOR.decode).then(function(options) {
console.log(options)
//This line is not working
return navigator.credentials.create(options);
//More code... complete registration...
Run Code Online (Sandbox Code Playgroud)
我想不通。你知道怎么回事吗?谢谢!
我遇到了同样的问题,原因是 /register/begin 响应中从服务器发送的某些数据必须格式化为字节字符串而不是 unicode 字符串。特别是,我发现 user_id 和凭证 ID 必须是字节字符串 - 假设您也在服务器中遵循 Yubico 的示例,在 python 3 中实现。
另外值得注意的是,在这种情况下,我发现 Firefox 的错误消息比 chome 的有用得多。
归档时间: |
|
查看次数: |
2532 次 |
最近记录: |