0

データベーステーブルから認証することにより、cake2.2のauthコンポーネントを使用してログインする方法を教えてください。私のAppController.phpは次のとおりです: `

class AppController extends Controller {

    var $components = array('Auth', 'Session');
    var $helpers = array('Form');




}` 

私のUsersController.phpは次のとおりです。

    class UsersController extends AppController {
    var $name = 'Users';
    var $components = array('Auth'); 

    function login() 
    {

    }
    function logout() 
    {
    $this->redirect($this->Auth->logout());
    }
  }

私の見解:view \ user \ login.ctp

    <?php
    echo $this->Session->flash('auth');
    echo $this->Form->create('User');
    echo $this->Form->input('username');
    echo $this->Form->input('password');
    echo $this->Form->end('Login');
?>
4

2 に答える 2

1
public function login() {
    if ($this->Auth->login()) {
        $this->redirect($this->Auth->redirect());
    }
}
于 2012-10-03T10:55:59.763 に答える
1

認証構成コンポーネントをセットアップすると、次のようになります。

public $components = array(
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'users',
            'action' => 'login',
            'plugin' => 'users'
        ),
        'authError' => 'Did you really think you are allowed to see that?',
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);

Ceeramが投稿したものと同じようなログイン機能

<?php
public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            return $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth');
        }
    }
}

私が言っていることはすべて公式ドキュメントにあり、Authに関するこのチュートリアルは本当によく説明されていますhttp://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

于 2012-10-18T11:35:27.883 に答える