是否有将 API 密钥和秘密保存到数据库中的最佳实践?
Posted
技术标签:
【中文标题】是否有将 API 密钥和秘密保存到数据库中的最佳实践?【英文标题】:Are there best Practices for saving API Keys & Secret into the Database? 【发布时间】:2021-06-29 12:05:52 【问题描述】:我正在开发一个小型 Laravel 项目,用户可以在其中注册并连接到不同的 API。我知道 API 密钥不应该保存在数据库中,但每个用户都有自己的私有 API 密钥,我无法将其硬编码到 .env 文件中。我考虑将 Key & Secret 保存在不同的表中,并使用 APP_KEY 对其进行加密。
有更好的方法吗?
提前感谢您的任何反馈
【问题讨论】:
你可能想看看 Laravel Passport。 laravel.com/docs/passport 【参考方案1】: 首先您需要创建模型和表格第 1 步:(创建模型和迁移)
php artisan make:model ApiKey -m
=> 型号名称
ApiKey=> 列名
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”);
【讨论】:
以上是关于是否有将 API 密钥和秘密保存到数据库中的最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 API 密钥和秘密保护 Spring Boot API