5

CakePHP アプリで自分の好みに合わせて認証を機能させようとしていて、問題が発生しています。

ユーザーがホームページまたは専用のログインページからログインできるようにしたい。私は Auth コンポーネントを使用してログインを管理していますが、現在はログイン自体が機能しています。ホームページのフォームを /Users/Login に送信すると、ログインしてセッションが作成されます。問題は、ユーザーをホームページにリダイレクトすることです。むしろ、loginRedirect で指定された場所にリダイレクトしたいと思います。

/users/login から直接ログインすると、loginRedirect に転送されます。問題は、あるページから別のページにフォームを投稿することと関係があると思います。auth は、前のページに戻りたいと自動的に判断します。

何かご意見は?

4

3 に答える 3

8

AppController で

public function beforeFilter( )
{
    $this->Auth->autoRedirect   =   false;
}

ユーザーコントローラーで

public function login( )
{
    if( $this->Auth->user( ) )
    {
        $this->redirect( array(
            'controller'    =>  'users' ,
            'action'    =>  'index' ,
        ));
    }
}

また、まだフォームを要素に移動していない場合は、2 つのログイン ビュー間でログイン フォームが同一であることを完全に確認できるようにする必要があります。

于 2009-01-23T20:19:09.813 に答える
0

$autoRedirect を false に設定してオフにし、リダイレクトを自分で処理することもできます。AuthComponent の問題は、実際には制御できない、またはハックによってしか制御できない automagic が多すぎることです。

問題の解決策の 1 つは、Session.Auth.redirect キーを削除することです。そのため、AuthComponent は常に $loginRedirect URL を使用します。

$this->Session->del('Auth.redirect');
于 2008-12-17T09:50:15.160 に答える
0

はい、auth には、ログインする前にアクセスしようとしたページにリダイレクトする機能があります。ログ リダイレクトの設定がうまくいかない場合は、loginRedirect を false に設定して、手動で ($this->redirect( [..] ) UsersController::login アクションで。

于 2008-10-27T08:14:29.187 に答える