存储API密钥的laravel方式是什么?

时间:2014-08-14 14:05:00

标签: security laravel

是否存在建议用于存储API密钥的特定文件或目录?我希望将我的密钥从我的代码库中取出,但我不确定将它们放在哪里。

2 个答案:

答案 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');