根据版本3的cakephp official document,它声明配置AuthComponent。所以我做的是在public function initialize
方法中将下面的代码添加到AppController。
$this->Auth->config('authenticate', [
'Basic' => [
'fields' => ['username' => 'username', 'password' => 'api_key'],
'userModel' => 'Users'
]
]);
然后在UsersTable中,我添加了以下代码,为用户生成新的api密钥:
public function beforeSave(Event $event)
{
$entity = $event->data['entity'];
if ($entity->isNew()) {
$entity->api_key = Security::hash(Text::uuid());
}
return true;
}
我想了解的是api键如何以及在哪里存储?当我创建新用户时,我不知道在哪里可以查找api_key
。
我是否需要在名为api_key的Users表中创建一个列才能为用户存储密钥?官方文档没有说明如何访问密钥并在基本身份验证中使用它。
答案 0 :(得分:0)
我是否需要在Users表中创建名为api_key的列才能为用户存储密钥?
当然。是什么让你认为它将被神奇地存储在任何地方?
官方文档没有说明如何访问密钥并在基本身份验证中使用它。
It does.阅读前三段。要么您没有阅读它,要么您不知道Basic auth如何工作。 Look this up here。如果您的客户使用基本身份验证并发送正确的信息,那么适配器将自动处理并查看用户,这完全取决于您已粘贴的代码:
$this->Auth->config('authenticate', [
'Basic' => [
'fields' => ['username' => 'username', 'password' => 'api_key'],
'userModel' => 'Users'
]
]);