React-Native:重新安装应用程序后获取相同的唯一设备ID

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

我正在用 React-Native 编写一个应用程序,需要一些有关重新安装应用程序后识别设备的帮助。

我需要什么:

  • 为每台 Android 和 iOS 设备获取唯一的设备 ID。
  • 即使用户卸载应用程序并再次安装,也应返回相同的 ID。

与此最接近的是

react-native-device-info
中的getUniqueID()方法。但是,如果重新安装应用程序,iOS 上将返回不同的 ID,因为此方法的返回值与供应商相关。

祝你有美好的一天!

react-native uuid udid reinstall
3个回答
4
投票
  1. 好吧,如果您需要它出于安全目的(例如,这样没有人会滥用您的API或高级内容),您正在寻找适用于iOS的设备检查/应用程序证明和适用于Android的Google安全网络。通过使用这些库,您将获得唯一的设备令牌(在 iOS 上)或证明(在 Android 上)。

使用 iOS 时,您可以获取此令牌,并使用您自己的服务器作为中间人,在直接托管在 Apple 中的服务器上设置两个位(因为您不应该直接从移动应用程序执行此操作)。

根据 Apple 的说法:Apple 会为您记录这些位并将这些位报告给您,但是 您负责跟踪这些位的含义。你是 还负责确定何时重置给定的位 设备;例如,当用户将设备出售给其他人时

同样,对于 Android - 您只需将证明从设备发送到服务器即可进行验证。

要在 React Native 中使用提到的库,您可以安装相应的库:

或者,如果您使用 Firebase 库(例如来自 rnfirebase.io),则可以使用 AppCheck,它使用 SafetyNet 和 DeviceCheck / App Attestation 底层,并且还具有简单的服务器端验证(也适用于非 Firebase 资源)。

  1. 如果您需要一个专注于将数据从服务器推送到客户端的解决方案,那么您正在寻找推送通知令牌。

库:

由于此令牌可能会随着时间的推移而变化(根据设计),因此您应该实现一些支持该/或可能重新架构您的应用程序的服务。 通常,令牌存储在后端的用户配置文件下(或者它们以其他方式链接到在给定时间内使用设备的用户)。

  1. 如果您正在寻找其他东西,我认为这是不可能的。

1
投票

不用担心MisseMask, uniqueID 对于您的应用程序包 ID 始终是唯一的。每个应用程序有两个唯一的 ID。

这是调试版本的唯一 ID,发布版本的另一个唯一 ID。因此,请通过调试模式反复安装来检查您的应用程序。现在您获得了相同的 uniqueID。并通过发布版本再次执行此过程

例如:

Debug version uniqueID: 
  1st install  - 3279dhsbqd9yrbceqiqbcv
  2nd uninstall and install - 3279dhsbqd9yrbceqiqbcv
  3, 4, 5, 6, .... - are same uniqueID
Release version uniqueID:
  1st install - dsvfhdfgdf454tdsgsghetuh7j5
  2 nd uninstall and install - dsvfhdfgdf454tdsgsghetuh7j5
  3, 4, 5, 6, .... - are same uniqueID

0
投票

如果您需要为每台设备提供唯一的身份,请务必使用 IMEI,您可以通过使用来获取它

npm install react-native-imei --save

在启动应用程序时输入此代码

const IMEI = require('react-native-imei');
IMEI.getImei().then(imeiList => {
console.log(imeiList)
});

不要忘记将其放入 android AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
© www.soinside.com 2019 - 2024. All rights reserved.