我正在用 React-Native 编写一个应用程序,需要一些有关重新安装应用程序后识别设备的帮助。
我需要什么:
与此最接近的是
react-native-device-info中的
getUniqueID()
方法。但是,如果重新安装应用程序,iOS 上将返回不同的 ID,因为此方法的返回值与供应商相关。
祝你有美好的一天!
使用 iOS 时,您可以获取此令牌,并使用您自己的服务器作为中间人,在直接托管在 Apple 中的服务器上设置两个位(因为您不应该直接从移动应用程序执行此操作)。
根据 Apple 的说法:Apple 会为您记录这些位并将这些位报告给您,但是 您负责跟踪这些位的含义。你是 还负责确定何时重置给定的位 设备;例如,当用户将设备出售给其他人时
同样,对于 Android - 您只需将证明从设备发送到服务器即可进行验证。
要在 React Native 中使用提到的库,您可以安装相应的库:
或者,如果您使用 Firebase 库(例如来自 rnfirebase.io),则可以使用 AppCheck,它使用 SafetyNet 和 DeviceCheck / App Attestation 底层,并且还具有简单的服务器端验证(也适用于非 Firebase 资源)。
库:
由于此令牌可能会随着时间的推移而变化(根据设计),因此您应该实现一些支持该/或可能重新架构您的应用程序的服务。 通常,令牌存储在后端的用户配置文件下(或者它们以其他方式链接到在给定时间内使用设备的用户)。
不用担心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
如果您需要为每台设备提供唯一的身份,请务必使用 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" />