[英]How to store sensitive data in React Native or expo code ? ( with Keychain and Keystore )
我看到了一些關於“如何在 React Native 中存儲敏感數據”的問題(比如這個和這個),但是,所有這些案例都在談論動態獲取一些敏感數據(例如,從服務器),然后使用AsyncStorage
存儲它。 但是,如果您需要在代碼中寫入敏感的令牌/密碼怎么辦?
例如,我想實現這個庫: https : //github.com/fullstackreact/react-native-oauth正如你在第一個例子中看到的,我必須在代碼中寫入秘密令牌。
在所有 react-native 項目目錄中是否有一個文件,我可以在其中放置我的令牌,然后在應用程序中獲取它? 在應用程序中操作這些安全令牌有多安全?
謝謝
如何在 React Native 代碼中存儲敏感數據?
現在多個庫允許您在 React Native 代碼中存儲敏感信息:
注意:在本機端,這些庫可以使用:
下面是使用的例子發生反應天然-鑰匙扣存儲敏感數據與反應原生
對於 iOS,它使用鑰匙串共享功能
對於 Android,它使用:
你可以這樣使用它:
// Generic Password, service argument optional
Keychain
.setGenericPassword(username, password)
.then(function() {
console.log('Credentials saved successfully!');
});
// service argument optional
Keychain
.getGenericPassword()
.then(function(credentials) {
console.log('Credentials successfully loaded for user ' + credentials.username);
}).catch(function(error) {
console.log('Keychain couldn\'t be accessed! Maybe no value set?', error);
});
通常,AsyncStorage 用於在 react-native 中存儲數據,但它根本不安全。 expo-secure-store由 expo-team 維護和開發,其工作方式與 AsyncStorage 相同。
它使用加密的鑰匙串服務,在存儲和檢索數據時對數據進行哈希處理,使其超級安全。
此外,可以使用諸如 Realm 之類的加密數據庫,並且加密密鑰將存儲在 Keychain 中。
Expo 也可能不支持 Realm(因此您需要使用裸 React Native 工作流或彈出)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.