별도의 사이트 대신 홈페이지에 로그인하고 싶습니다./login route에 자격 증명을 입력하면 모든 것이 정상이지만/route에서는 작동하지 않습니다.Symfony3 : 다른 사이트에서 렌더링 할 때 로그인 양식이 작동하지 않습니다.
내가 base.html.twig에서이 명령을 사용하여 로그인 양식을 렌더링 (테스트 목적으로 지금은 각 페이지에서 로그인 폼을 렌더링 할) : 여기
{{ render(controller("AppBundle:Security:login")) }}
내 login.html.twig입니다 :
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
<form action="{{ path('login') }}" method="post">
<div class="form-group">
<input type="text" class="form-control" id="username" placeholder="Email" name="_username" value="{{ last_username }}" />
<input type="password" class="form-control" id="password" placeholder="Heslo" name="_password" />
</div>
<button type="submit" class="btn btn-success">Přihlásit</button>
<a href="/registration" class="btn btn-info" role="button">Registrovat</a>
</form>
그리고 내 loginAction : security.yml에서
/**
* @return array
* @Route("/login", name="login")
* @Template()
*/
public function loginAction()
{
$authenticationUtils = $this->get('security.authentication_utils');
// get error
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
return [
'last_username' => $lastUsername,
'error' => $error
];
}
그리고 secured_area :
secured_area:
pattern: ^/
anonymous: ~
provider: main
form_login:
login_path: login
check_path: login
logout:
path: /logout
target:/
로그인 양식이 홈페이지에서 성공적으로 렌더링됩니다. 하지만 자격 증명을 입력하고 버튼을 클릭하면 아무 일도 일어나지 않습니다. 아마도 버튼이 로그인 페이지에 정의 된 동작 대신 홈페이지에 정의 된 동작 양식을 찾으려고하기 때문일 수 있습니까?
대신 버튼이 원래 (로그인) 동작을 사용하도록 "강제 설정"할 수 있습니까?
답장을 보내 주셔서 감사합니다.
http://symfony.com/doc/current/cookbook/security/form_login_setup.html 감사합니다 : 설정하는 방법 양식 기반 로그인을 문서에 전용 요리 책 문서를 확인에 대한 자세한 지침은
. symfony를 처음 접했을 때 check_path에 양식을 게시하는 방법을 모르겠습니다. 내 질문을 업데이트했습니다 - security.yml의 일부가 추가되었습니다. check_path에 대해 다른 페이지를 만들어야합니까? 일을 어떻게 만드는지 예를 들어 주시겠습니까? 감사합니다. –
한 번 더 답변을 읽었습니다. 보안 확장이 로깅을 처리해야한다는 의미입니까? 렌더 컨트롤러 라인이 버그를 유발할 수 있습니까? 로깅을 위해 버튼을 클릭해도 아무런 변화가 없습니다. 로그인이 실패하면 버튼이/login으로 리디렉션됩니다. 맞습니까? 제출 버튼에는 매개 변수가 없습니다./login이 아닌 다른 페이지에서 양식을 렌더링 할 때 symfony가 로깅을위한 버튼이라는 것을 어떻게 알 수 있습니까? –
login_path에 check_path와 동일한 경로를 사용하고있는 것으로 보입니다. 다른 URL로 check_path에 대한 새 라우트를 작성해야합니다. 그런 다음 양식 태그에서 조치 특성에 대한 점검 경로의 URL을 생성해야합니다. – Gerry