나는 지난 며칠 동안 나 자신과 힘들었다. ZfcUser 구성에는 use_redirect_parameter_if_present
설정이 포함되어 있지만 설명서에는이 설정을 사용하는 방법에 대한 예제가 없습니다. 내 방법이 견고한 지 모르겠다.하지만 여기가 내가이 일을하기 위해 무엇을했는지에 대한 것이다. 이 방법은 전달을 사용하기 때문에 URL을 보존합니다. 나는 앞으로를 사용하지 않고 이것을 할 또 다른 방법이 확실하지 않습니다.
zfcuser 구성 파일에서 use_redirect_parameter_if_present
설정을 true
으로 설정하십시오. 이렇게하면 ZfcUser의 로그인 동작에서 요청의 redirect
매개 변수를 찾습니다. 인증을 성공하면 지정한 위치로 사용자를 반환합니다.
그럼, 내가 로그인 한 사용자를 확인하려는 컨트롤러, 내가 가진 :
if (!$this->zfcUserAuthentication()->hasIdentity()) {
// Build the redirect URL using the route to which we want
// the user returned.
$redirect = $this->url()->fromRoute('your route', array(
'optional-route-param' => 1234
));
// Set the redirect URL in the request so that ZfcUser can
// pick it up. This is the key.
$this->getRequest()->getQuery()->set('redirect', $redirect);
// Use ZfcUser's login action rather than its authentication
// action.
return $this->forward()->dispatch('zfcuser', array(
'action' => 'login'
));
}
그게 도움이되기를 바랍니다. 이 문제가 발생하면 코드를 게시해야 할 수도 있습니다.
사용자가 액세스하려는 세션에 대한 링크를 저장하고 성공적인 로그인 후 해당 페이지로 리디렉션합니다. – motivast
나는 kierzniak에 동의합니다. 세션에 경로 이름과 매개 변수를 저장하고 로그인으로 리디렉션하고이 경로 정보로 다시 리디렉션합니다. 이것은 분명히 비록 POST 요청과 함께 작동하지 않습니다. –
당신은 URL을 보존하는 것이 더 나은 방법이라고 생각합니다. 충분히 공정하지만 로그인을 다시 리디렉션하는 방법은 무엇입니까? 현재/로그인 한 번 사용자 (기본 제공 사용자의 프로필 페이지)로 이동합니다. – Shoreline