2015-09-30 2 views
0

Согласно cakephp official document для версии 3, он устанавливает конфигурацию AuthComponent. Итак, что я сделал, я добавил код ниже в AppController внутри метода public function initialize.Cakephp 3 Требуется базовая проверка подлинности

$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.

Нужно ли создать столбец в таблице Users с именем api_key, чтобы можно было хранить ключ для пользователя? В официальном документе ничего не говорится о том, как получить доступ к ключу и использовать его в базовой аутентификации.

ответ

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' 
    ] 
]); 
+1

Спасибо за добрые слова @burzum. Мой вопрос не имеет отношения к погоде. Я понимаю базовую аутентификацию или нет. Я пытаюсь понять, где хранятся файлы api_keys. И большое спасибо за разъяснение этого. Однако я не согласен с вашим утверждением, что «Прочитайте первые три абзаца». Я не вижу ссылок на то, что новый столбец должен быть создан в таблице «Пользователи». – Ray

+1

Не затрагивает вопрос. Этот ответ в основном говорит: «Вы не читали документацию, и вы не понимаете, как это работает». Обе точки являются вероятными причинами, по которым был задан вопрос. Документация смутно ссылается на «объекты аутентификации» и метод getUser, но не позволяет проиллюстрировать, где и как эти элементы связаны. –

Смежные вопросы