CakePHPの複数のログイン場所からloginRedirectを取得するにはどうすればよいですか?
質問
CakePHPアプリで自分の好みに合った認証を取得しようとしていて、思わぬ障害に遭遇しています。
ホームページまたは専用ログインページからユーザーにログインさせたい。ログインを管理するために認証コンポーネントを使用していますが、現在はログイン自体が機能しています。ホームページのフォームを/ Users / Loginに送信すると、ログインしてセッションが作成されます。問題は、ユーザーをホームページにリダイレクトすることです。私はむしろ、loginRedirectで指定された場所にリダイレクトします。
/ users / loginから直接ログインすると、loginRedirectに転送されます。この問題は、フォームをあるページからそれ自体ではなく別のページに投稿することと関係があると思います。authは自動的に前のページに戻りたいと判断します。
何か考えはありますか
解決
AppController内
public function beforeFilter( )
{
$this->Auth->autoRedirect = false;
}
UsersController
でpublic function login( )
{
if( $this->Auth->user( ) )
{
$this->redirect( array(
'controller' => 'users' ,
'action' => 'index' ,
));
}
}
また、まだフォームを要素に移動していない場合は、2つのログインビュー間でログインフォームが同一であることを完全に確認できます。
他のヒント
はいauthには、ログインする前にアクセスしようとしたページにリダイレクトする機能があります。ログインリダイレクトの設定が機能しない場合は、loginRedirectをfalseに設定して手動($ this- > redirect([..])UsersController :: loginアクション。
$ autoRedirectを無効にするには、falseに設定し、自分でリダイレクトを処理します。 AuthComponentの問題は、実際には制御できない、またはハッキングによってのみ自動マジックが多すぎることです。
問題の解決策の1つはSession.Auth.redirectキーを削除することです。そのため、AuthComponentは常に$ loginRedirect URLを使用します。
$this->Session->del('Auth.redirect');