如果我想要将代码上传到GitHub,那么在Flutter中添加秘密API密钥的正确方法(最佳做法)是什么?我已经制作了一个简单的应用程序来使用API,但我只是以crud方式使用密钥来测试应用程序是否工作。通常从后端开发应用程序的经验来看,Key被存储在某个地方,并且在不同的文件中,然后只需将其导入到需要API_KEY
的必需文件中,并在.gitignore
文件中排除该文件。
到目前为止,我还实施了这种方法:
文件夹树
-lib
-auth
-keys.dart
-secrets.json
secrets.json
这是我将添加 KEY
并在 .gitignore
文件中指定的位置,以便在推送代码到 GitHub 时排除此文件。
//Add API KEY HERE
{
"api_key": "ee4444444a095fc613c5189b2"
}
keys.dart
import 'dart:async' show Future;
import 'dart:convert' show json;
import 'package:flutter/services.dart' show rootBundle;
class Secret {
final String apikey;
Secret({this.apikey=""});
factory Secret.fromJson(Map<String, dynamic>jsonMap){
return new Secret(apikey:jsonMap["api_key"]);
}
}
class SecretLoader {
final String secretPath;
SecretLoader({this.secretPath});
Future<Secret> load() {
return rootBundle.loadStructuredData<Secret>(this.secretPath,
(jsonStr) async {
final secret = Secret.fromJson(json.decode(jsonStr));
return secret;
});
}
}
我觉得这种方法太过复杂,希望能得到更好的建议。
static const
键的 Dart 文件。这样使用起来会更加容易。 - zgorawski