2016-11-25 62 views
0

我看到一些問題,詢問「如何存儲敏感數據和React Native」(如thisthis),但所有這些情況都是在動態地(例如從服務器)採集一些敏感數據,然後使用AsyncStorage進行存儲。 但是,如果您需要在代碼中寫入敏感的代碼/密碼,那麼該怎麼辦?如何在React Native代碼中存儲敏感數據?

例如,我想實現此庫:https://github.com/fullstackreact/react-native-oauth 正如您在第一個示例中所看到的,我必須在代碼中編寫祕密令牌。

在所有react-native項目目錄中,我可以放置令牌然後在應用程序中獲取文件嗎? 操作應用程序中的安全令牌有多少安全性?

感謝

+0

Asyncstorage是permament存儲,所以我不會保存重要的信息有即使在離開應用程序後,刪除它們的控制。因此,您可以使用暫時存儲值的Mobx或Redux來存儲這些信息。 –

+0

@BurakKarasoy但是,使用redux/mobx絕不會以任何特殊方式獲得這些信息。此外,信息不會持續存在,您仍然有設置這些值的挑戰。 – martinarroyo

+0

看看這個問題:http://stackoverflow.com/questions/1934187/oauth-secrets-in-mobile-apps – martinarroyo

回答

1

如何存儲敏感數據作出反應本機代碼?

是有辦法做到這一點,你可以使用react-native-keychain來存儲敏感數據react-native

在iOS設備上使用它鑰匙扣共享功能

對於Android的使用它:

  • API等級16-22使用Facebook隱藏
  • API等級23+使用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); 
    });