настройте компонент аутентификации по-разному для каждой схемы

#authentication #cakephp #cakephp-3.0

#аутентификация #cakephp #cakephp-3.0

Вопрос:

Я хотел бы добавить API в существующее приложение, используя аутентификацию Auth component и Form scheme, используя базовую аутентификацию.

Я думаю, что хотел бы иметь такую конфигурацию, но я не уверен, можно ли вводить настройки для каждой схемы.

В качестве альтернативы, есть ли способ изменить настройки компонента аутентификации на основе маршрута? Например, используйте Form based, если расширение url не является json, и в этом случае используйте Basic?

 $this->loadComponent('Auth', [
    'authenticate' => [
        'Form' => [
            'fields' => [
                'username' => 'email',
                'password' => 'password'
            ],
            'loginAction' => [
                'controller' => 'Users',
                'action' => 'login'
            ],
            'storage' => 'Session',
            'unauthorizedRedirect' => $this->referer()

        ],
        'Basic' => [
            'fields' => [
                'username' => 'username',
                'password' => 'api_key'
            ],
            'storage' => 'Memory',
            'unauthorizedRedirect' => false
        ]
    ],
    'loginAction' => [
        'controller' => 'Users',
        'action' => 'login'
    ],
]);
 

Комментарии:

1. В тот момент, когда вы это делаете, я думаю, у вас должен быть доступ к $this->request->is('json') ?

2. Кроме того, если вы используете более свежую версию CakePHP (вы отметили 3.0, но люди часто делают это, даже если используют более новую версию), и вы не работаете с существующим приложением, которое полагается на компонент аутентификации, вы можете вместо этого изучить новый плагин промежуточного программного обеспечения авторизации.