CakePHPの複数のログイン場所からloginRedirectを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/238358

  •  04-07-2019
  •  | 
  •  

質問

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');
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top