这里的第一个问题。 我正在开发一个登录页面,我无法弄清楚为什么我的登录表单显示两次。我仔细检查了枝条文件和路线,但我没有看到可能导致它的原因。
我正在使用php服务器,所以我在开发环境中,我认为发生的事情是我的调试栏被实际页面替换,导致显示内容两次。调试器栏未显示。我在谷歌搜索,我看到他们提到的身体标签没有被关闭,所以我也检查了。仍然注意到。我检查了一些其他文件是否也在调用登录模板。没什么......有什么建议吗?
这是一张价值超过千言万语的图片。
由于
image shows the login page showing twice
此外,这里是我正在使用的代码,它直接来自symfony的文档:
控制器
/**
* @Route("/login", name="security_login")
*/
public function loginAction(Request $request)
{
$authenticationUtils = $this->get('security.authentication_utils');
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('security/login.html.twig', array(
'last_username' => $lastUsername,
'error' => $error,
));
}
Securit.yml
providers:
app_user_prov:
entity:
class: AppBundle:User
firewalls:
main:
pattern: ^/
anonymous: ~
guard:
authenticators:
- cas_authenticator
登录twig文件:
{% extends 'base.html.twig' %}
{% block content %}
{% if error %}
<div class="row">
<div class="col-lg-12">
<p class="bg-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</p>
</div>
</div>
{% endif %}
<div class="row">
<div class="col-lg-12 text-center" style="margin-top:35px;">
<img style="border:none;" src="loreipsum.png" width="200">
<br /> <br />
<form action="{{ path("security_login") }}" method="post" style="margin-top:15px;">
<div class="form-group">
<label for="username">Username or email</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="_password" required="required" />
</div>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<div class="form-group">
<input type="submit" id="_submit" name="_submit" value="Submit" />
</div>
</form>
</div>
</div>
{% endblock %}
基础树枝文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}Administration{% endblock %}</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"
integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymo
{% block stylesheets %}{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
<!-- jQuery and Bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
{% block javascripts %}{% endblock %}
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-6">
<h1 class="text-left">
<img style="border:none;" src="loremipsum.jpg" width="200">
</h1>
</div>
<div class="col-lg-6">
<h3 class="text-right"> <br/>Lorem ipsum</h3>
</div>
</div>
{% block content %}{% endblock %}
</div>
</body>
</html>
答案 0 :(得分:0)
也许您的登录页面无法公开访问:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
因此,symfony首先显示FOS登录,当您对用户进行身份验证时,重定向到之前请求的页面/登录