Cakephp 3基本身份验证需要澄清

时间:2015-09-30 15:06:05

标签: cakephp cakephp-3.0

根据版本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表中创建一个列才能为用户存储密钥?官方文档没有说明如何访问密钥并在基本身份验证中使用它。

1 个答案:

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