我面临 react-native-passkey lib
的问题文档上说“使用 React Native 在 iOS 15.0+ 和 Android API 28+ 上使用本机密钥。”
我正在构建 .apk 文件,其中配置密钥作为文档。
async function createAccount() {
//generate a challenge from backend
try {
const requestJson = {
'challenge': 'T1xCsnxM2DNL2KdK5CLa6fMhD7OBqho6syzInk_n-Uo',
'rp': {
'name': 'Passkey',
'id': 'com.myapp',
},
'user': {
'id': 'user123',
'name': '[email protected]',
'displayName': 'john Does',
},
'pubKeyCredParams': [
{
'type': 'public-key',
'alg': -7,
},
],
'authenticatorSelection': {
'authenticatorAttachment': 'platform',
'requireResidentKey': true,
'userVerification': 'preferred',
},
'timeout': 60000,
'attestation': 'direct',
};
const result = await Passkey.create(requestJson);
console.log('Registration result: ', result);
} catch (e) {
console.log('Registration result:',e);
}
}
我在 3 台设备上进行测试。 第一个是 android 14,它可以按预期创建密钥。 但我的第二个和第三个设备是 android 10。我无法创建密钥并收到错误,如
{"error": "Native error", "message": "Error: The incoming request cannot be validated"}
你知道如何修复吗?
所以我只需将 requestJson 上的 rp.id 从 https://mydomain/.well-known/assetlinks.json 更改为我的域
喜欢
'rp': {
'name': 'Passkey',
'id': 'mydomain',
},