0

CakePHP Auth ログインに問題があります。何らかの理由で、私がレイアウトしたパスにサイトが移動する代わりに、フォームを見て、ログイン機能に直接移動します。

説明するために、ここに私のコードがあります、

ルーターファイル:

Router::connect('/clientlogin', array('controller' => 'pages', 'action' => 'UsersLogin'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));

Pages Controller - UsersLogin 関数:

 public function UsersLogin() {
   $this->render('/Pages/LoginForm');
 } //End of UsersLogin function

ユーザーコントローラー - ログイン機能:

   public function login() {
        if ($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash('Invalid Username Or Password, Please Try Again', 'default', array(), 'bad');
            $this->redirect($this->Auth->redirect());
        }
   } //End of Login function

LoginForm.cpt コード:

 echo $this->Session->flash('auth');
 echo $this->Form->create('User', array('url'=>'/login', 'id' => 'LoginForm')); 
 echo $this->Form->input('username');
 echo $this->Form->input('password');
 echo $this->Form->submit('Login', array('class' => 'Button'));
 echo $this->Form->end();

私のサイトのメイン メニューには、「/clientlogin」を指す「ログイン」ボタンがあり、ユーザーがログインするためのフォームをロードします。ただし、セッション情報の有効期限が切れると、アクセスするためにログインが必要なサイトの領域が、再ログインを促します。

しかし、CakePHP は /clientlogin ではなく /login に移動します。これはフォームではなく、ログイン コントローラーです。また、何に変更してもかまいませんが、フォームをどこに向けるかは、Cake whats to go. たとえば、/mylogintest または /loginuser を指すようにフォームを変更すると、Cake は代わりにこれらのパスに移動しました。

したがって、私の主な質問は、Cake がセッション情報を再認証する必要がある場合、それがフォームに配置されたパスではなく、クライアントフォームのパスを指していることを確認するにはどうすればよいかということです。

明確でない場合、または必要なものを投稿していない場合は、お問い合わせください。修正を試みます。

助けてくれてありがとう

グレン。

4

1 に答える 1

2

コンポーネントに追加のキーを渡すことで、デフォルトのログイン アクションを変更できます。以下のコードを参照してください。

// Pass settings in $components array
public $components = array(
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'pages',
            'action' => 'UsersLogin'
        )
     )
 );

ログインフォームを含めるために別のアクションを作成する必要がある理由がわかりません。通常、ログイン アクション内にフォームを配置し、$this->request->is('post') を使用してリクエストをチェックします。詳細については、クックブックを参照してくださいhttp://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

于 2013-06-13T00:31:58.960 に答える