CakePHP의 여러 로그인 위치에서 LoginRedirect를 어떻게 얻습니까?

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

  •  04-07-2019
  •  | 
  •  

문제

CakePHP 앱에서 좋아하는 인증을 받고 걸려 넘어 지려고 노력하고 있습니다.

사용자가 홈페이지 나 전용 로그인 페이지에서 로그인하도록하고 싶습니다. 인증 구성 요소를 사용하여 로그인을 관리하고 있으며 지금은 로그인 자체가 작동합니다. 홈페이지의 양식을 /사용자 /로그인에 제출하고 있으며 로그인하고 세션을 작성합니다. 문제는 사용자를 홈페이지로 다시 리디렉션한다는 것입니다. 오히려 그들은 loginredirect에 지정된 위치로 리디렉션하고 싶습니다.

/사용자 /로그인에서 직접 로그인하면 loginRedirect로 전달됩니다. 문제는 양식을 한 페이지에서 다른 페이지 자체로 게시하는 것과 관련이 있다고 생각합니다. Auth는 자동으로 이전 페이지로 돌아 가고 싶다고 생각합니다.

이견있는 사람?

도움이 되었습니까?

해결책

AppController에서

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

사용자 콘트롤러에서

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

또한, 아직 그렇지 않은 경우 양식을 요소로 이동시켜야하므로 로그인 양식이 2 개의 로그인 뷰 사이에 동일해야합니다.

다른 팁

예, 인 Auth는 로그인하기 전에 액세스하려고 시도한 페이지로 리디렉션 할 기능이 있습니다. 로그 리디렉션을 설정하지 않으면 LoginRedirect를 False로 설정하고 설명서 ($ this-> redirect ($ this-> redirect) 할 수 있습니다. [..]) usersController :: 로그인 조치에서.

당신은 그것을 false로 설정하고 스스로 리디렉션을 처리하여 $ autoredirect를 끄질 수 있습니다. 인증 자의 문제는 실제로 통제 할 수없는 자동 지식이 너무 많거나 해킹 만으로만 있다는 것입니다.

문제에 대한 한 가지 솔루션 중 하나는 Session.Auth.Redirect 키를 삭제하는 것이므로 인증자는 항상 $ loginRedirect URL을 사용합니다.

$this->Session->del('Auth.redirect');
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top