是否存在建议用于存储API密钥的特定文件或目录?我希望将我的密钥从我的代码库中取出,但我不确定将它们放在哪里。
答案 0 :(得分:5)
这是Laravel较新版本的更新答案。
首先,在.env
文件中设置凭据。通常,您需要在服务名称前面加上前缀,因此在本示例中,我将使用Google Maps。
GOOGLE_KEY=secret_api_key
然后,看看config/services.php
-在这里我们可以将环境变量映射到应用程序配置中。您将立即发现一些现有示例。您可以在服务名称下添加其他配置,并将其指向环境变量。
'google' => [
'key' => env('GOOGLE_KEY'),
],
然后,当您需要在应用程序中访问此密钥时,可以通过应用程序配置获取它。
// Through a facade
Config::get('services.google.key');
// Through a helper
config('services.google.key');
请确保不要仅在您的应用中使用env('GOOGLE_KEY)
-在缓存应用时,通过应用配置进行配置的性能更高-特别是如果您将php artisan config:cache
作为您的部署过程。
答案 1 :(得分:4)
您可以制作API密钥环境变量,然后以这种方式访问它们。详细了解protecting sensitive configuration from the docs。
您只需在项目的根目录中创建一个.env.php
文件,该文件将返回一组环境变量。
<?php
return array(
'SECRET_API_KEY' => 'PUT YOUR API KEY HERE'
);
然后你可以在你的应用中访问它。
getenv('SECRET_API_KEY');