默认凭据突然出现在 symfony 3 登录表单中
Default credentials appearing out of nowhere in symfony 3 login form
我在 symfony 3 项目中使用 fosuserbundle 来处理用户登录。我的 loginAction 看起来像这样
public function loginAction(Request $request)
{
if($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_REMEMBERED'))
{
return $this->redirect($this->generateUrl('fusion_design_blog_homepage'));
}
$session = $request->getSession();
if ($request->attributes->has(Security::AUTHENTICATION_ERROR))
{
$error = $request->attributes->get(Security::AUTHENTICATION_ERROR);
}
else
{
$error = $session->get(Security::AUTHENTICATION_ERROR);
$session->remove(Security::AUTHENTICATION_ERROR);
}
return $this->render('FusionDesignUserBundle:Security:login.html.twig', array(
'last_username' => $session->get(Security::LAST_USERNAME),
'error' => $error,
));
}
相关的树枝模板如下
<div id="login">
<form action="{{ path('fos_user_security_check') }}" method="post">
<input type="text" id="username" name="_username" value="{{ last_username }}" class="loginField" placeholder="username"/>
<input type="password" id="password" name="_password" class="loginField" placeholder="password"/>
<input type="submit" value="log in" id="loginButton"/>
</form>
</div>
现在,一切正常。登录、注销、错误和其余的一切都在做它应该做的,除了一个小例外。
如果在此会话期间我还没有尝试(并遇到错误的凭据错误)填写凭据,则表单用户名和密码字段将具有默认值,用户名的默认值为 "root."
我试图找到这个 "root" 的来源,但不管我做什么,"root" 总是在那里,即使在源 html。老实说,我很茫然,有人有想法吗?
编辑
原来是浏览器弄乱了表单
您应该尝试在私人导航中执行此操作。您的浏览器似乎正在用旧值填充该字段。
我在 symfony 3 项目中使用 fosuserbundle 来处理用户登录。我的 loginAction 看起来像这样
public function loginAction(Request $request)
{
if($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_REMEMBERED'))
{
return $this->redirect($this->generateUrl('fusion_design_blog_homepage'));
}
$session = $request->getSession();
if ($request->attributes->has(Security::AUTHENTICATION_ERROR))
{
$error = $request->attributes->get(Security::AUTHENTICATION_ERROR);
}
else
{
$error = $session->get(Security::AUTHENTICATION_ERROR);
$session->remove(Security::AUTHENTICATION_ERROR);
}
return $this->render('FusionDesignUserBundle:Security:login.html.twig', array(
'last_username' => $session->get(Security::LAST_USERNAME),
'error' => $error,
));
}
相关的树枝模板如下
<div id="login">
<form action="{{ path('fos_user_security_check') }}" method="post">
<input type="text" id="username" name="_username" value="{{ last_username }}" class="loginField" placeholder="username"/>
<input type="password" id="password" name="_password" class="loginField" placeholder="password"/>
<input type="submit" value="log in" id="loginButton"/>
</form>
</div>
现在,一切正常。登录、注销、错误和其余的一切都在做它应该做的,除了一个小例外。
如果在此会话期间我还没有尝试(并遇到错误的凭据错误)填写凭据,则表单用户名和密码字段将具有默认值,用户名的默认值为 "root."
我试图找到这个 "root" 的来源,但不管我做什么,"root" 总是在那里,即使在源 html。老实说,我很茫然,有人有想法吗?
编辑
原来是浏览器弄乱了表单
您应该尝试在私人导航中执行此操作。您的浏览器似乎正在用旧值填充该字段。