我正在考虑将Firebase用于我的新移动应用程序,这是一个世博会应用程序。世博会的团队为此做了一个很好的教程(https://docs.expo.io/versions/latest/guides/using-firebase/)。
阅读本教程,我可以看到推荐的方法是将API凭据(密钥、项目ID等)直接在应用程序中,并以这种方式初始化客户端:
import * as firebase from 'firebase';
// Initialize Firebase
const firebaseConfig = {
apiKey: "<YOUR-API-KEY>",
authDomain: "<YOUR-AUTH-DOMAIN>",
databaseURL: "<YOUR-DATABASE-URL>",
storageBucket: "<YOUR-STORAGE-BUCKET>"
};
firebase.initializeApp(firebaseConfig);
问题:将API密钥放在RN (Expo)项目中安全吗?
发布于 2019-11-08 11:31:54
我也在使用firebase,还有很多需要KEy接口的第三方软件开发工具包。我通过在后端存储它来做到这一点,当应用程序初始化(即挂载)时,我调用一个API到后端,它给出了所有的API密钥,我将它们存储在各自的异步存储中,所以每当我需要那个特定的API密钥时,我只需执行AsyncStorage.getItem('API_Key'),它既是安全的,又不能被跟踪,因为它来自后端。显然,在后端,您希望将它们存储为环境变量。所以我建议你遵循这一点。
在您的情况下,只需这样做
let firebaseApiKey = AsyncStorage.getItem('firebaseKey');
// Initialize Firebase
const firebaseConfig = {
apiKey: firebaseApiKey,
authDomain: "<YOUR-AUTH-DOMAIN>",
databaseURL: "<YOUR-DATABASE-URL>",
storageBucket: "<YOUR-STORAGE-BUCKET>"
};
firebase.initializeApp(firebaseConfig);
发布于 2020-06-08 09:00:16
我建议你使用像Visual Studio App Center这样的服务来定义你的环境变量,然后在你的代码中引用这些变量。在构建过程中,VS App Center将适合您在代码中使用它的位置的值。
因此,敏感的值甚至不会触及您的代码库。这是我能想到的最安全的解决方案。
https://stackoverflow.com/questions/58765523
复制