【问题标题】:Are there best Practices for saving API Keys & Secret into the Database?是否有将 API 密钥和秘密保存到数据库中的最佳实践?
【发布时间】:2021-06-29 12:05:52
【问题描述】:
我正在开发一个小型 Laravel 项目,用户可以在其中注册并连接到不同的 API。我知道 API 密钥不应该保存在数据库中,但每个用户都有自己的私有 API 密钥,我无法将其硬编码到 .env 文件中。我考虑将 Key & Secret 保存在不同的表中,并使用 APP_KEY 对其进行加密。
有更好的方法吗?
提前感谢您的任何反馈
【问题讨论】:
标签:
database
laravel
api
security
【解决方案1】:
第 1 步:(创建模型和迁移)
Php artisan make:model ApiKey -m
=> 型号名称
=> 列名
- id、user_id、api_key、api_secret、created_at、updated_at
第 3 步:(存储数据)
Web.php
Route::post(‘user-details’,’UserController@storeApiDetails’)—>name(‘user-details’);
用户控制器
use App\ApiKey;
public function storeApiDetails(Request $request){
$request[‘user_id’] = Auth::id();
$request[‘api_key’] = bcrypt($request->api_key);
$request[‘api_secret’] = bcrypt($request->api_secret);
$data = ApiKey::create($request->all());
if($data->save()){
dd(“Success & Redirect To View File”);
}else{
dd(“Failed”);
}
}