Безопасное ключевое слово cakephp, например метод входа
Я хочу добиться чего-то вроде следующего сценария, упомянутого в CakePHP 1.3.8 последней версии:
- Спросить
Username / Password
или напрямую попроситьSecret Keyword
- Если правильно, попросите
Secret Keyword
- Если правильно, доступ больше
details of website
- Если не так,
don't allow
любой дальнейший доступ
Есть Auth
компонент в CakePHP для аутентификации, как username/password
Однако я хочу реализовать этот дополнительный шаг Secret Keyword
для доступа к информации, которая должна храниться в некотором файле, encrypted way
или какой-то другой лучший способ вы предлагаете в single computer
использование только.
Любые идеи были бы хорошы.
Спасибо!
1 ответ
Я обычно выключаю autoRedirect
так что я могу делать дополнительные вещи в моем login
метод. Обычно я не делаю так много работы, но вы, вероятно, можете соответственно изменить, после того, как аутентификация будет завершена / успешна. Это не полный ответ и не следующий полный фрагмент кода для вашего требования, но этого может быть достаточно для начала работы.
/** Logging in and authenticated */
if ( !empty( $this->data ) && $this->Auth->user() ) {
$this->User->id = $this->Auth->user( 'id' );
$this->set_user_type();
$this->User->saveField( 'last_login', date( 'Y-m-d H:i:s' ) );
if( $this->User->has_building( $this->Auth->User('id') ) ) {
$this->redirect( array( 'controller' => 'buildings', 'action' => 'incentives' ) );
}
else {
$this->redirect( $this->Auth->redirect() );
}
}
Это фрагмент одного из моих собственных проектов. В вашем случае вы могли бы искать значение секретного ключа затем. Если этого не существует, перейдите в представление, чтобы получить его и отправить обратно тому же методу. На втором проходе, если пользователь прошел проверку подлинности, а секретный ключ передан и существует, тогда перенаправьте по мере необходимости. Если секретный ключ неверен, отмените аутентификацию пользователя и перенаправьте его.
Как я уже сказал, не полный ответ, а очень простой взгляд на сложную проблему, но, надеюсь, это поможет вам начать работу.