Android 10 无法创建密钥(反应本机应用程序)

问题描述 投票:0回答:1

我面临 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"}

你知道如何修复吗?

android react-native passkey
1个回答
0
投票

所以我只需将 requestJson 上的 rp.id 从 https://mydomain/.well-known/assetlinks.json 更改为我的域

喜欢

 'rp': {
      'name': 'Passkey',
      'id': 'mydomain',
    },
© www.soinside.com 2019 - 2024. All rights reserved.