我目前正在为 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)'
编码:
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...
我想不通。你知道有什么问题吗?谢谢!