当前位置: 首页 > 知识库问答 >
问题:

Symfony 4|访问用传统用户表单传递的用户名(来自doc)

李谦
2023-03-14

我在https://symfony.com/doc/current/security/form_login_setup.html遵循教程,我想访问用户名。我想让会话存储用户名,但是我不知道如何捕获登录用户的用户名。

到目前为止,我已经尝试了$username=$request-

SecurityController.php

<?php
/**
 * Created by PhpStorm.
 * User: Adrian
 * Date: 2018-01-29
 * Time: 11:02
 */

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use Symfony\Component\Routing\Annotation\Route;

class SecurityController extends Controller
{
    /**
     * @Route("/panel/login", name="login")
     */
    public function login(Request $request, AuthenticationUtils $authUtils) {
        $error = $authUtils->getLastAuthenticationError();
        $lastUsername = $authUtils->getLastUsername();

        return $this->render('security/login.html.twig', array(
            'last_username' => $lastUsername,
            'error'         => $error,
        ));
    }

}

login.html.twig

{% block body %}
    {% if error %}
        <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
    {% endif %}

    <form action="{{ path('login') }}" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" />

        <label for="password">Password:</label>
        <input type="password" id="password" name="_password" />

        <input type="hidden" name="_target_path" value="/panel/dashboard"/>
        {#
            If you want to control the URL the user
            is redirected to on success (more details below)
            <input type="hidden" name="_target_path" value="/account" />
        #}

        <button type="submit">login</button>
    </form>
{% endblock %}

稍后,我希望通过以下方式访问此用户名:

$session = $request->getSession();
$username = $session->get('username');

共有1个答案

罗法
2023-03-14

如果用户成功登录,您可以使用$this在控制器中获取用户名-

如果用户未成功登录,您可以创建一个条令实体并保留失败的尝试,然后稍后调用该实体。这取决于你想用它做什么?

 类似资料:
  • 问题内容: 我想为我的网站创建一个用户管理系统, 有什么更好的安全性和性能。 类型1: 或者 类型2: 哪一个更好 ? 问题答案: 理想情况下: 根本不存储密码(即使是加密的)。存储从密码派生的 哈希 。 给密码加盐以防止彩虹攻击。 将散列放在单独的数据库服务器上,位于其自己的防火墙和其定义良好的API 1之后。该API应该只做三件事: 对于给定的用户名,检索相应的密码哈希。 对于给定的用户名,设

  • 问题内容: 帐户要求我发送出站邮件的用户名和密码。 我如何在执行时使用它该文件仅包含服务器和的条目。 问题答案: 我将以下详细信息应用于php.ini文件。它的作品很好。 这些详细信息与Outlook设置相同。

  • 我找不到如何将用户名和密码传递给KafkaConsumer。我使用SASL明文对Kafka服务器上的客户端进行身份验证。 我试图在上找到此信息https://kafka.apache.org/documentation/#consumerconfigs但结果是否定的。 我发现了一些作者使用参数“用户名”和“密码”的例子。我试图这样做: 但我得到了例外"未能构建Kafka消费者"。 如果有人知道如何

  • 问题内容: 我可以将简短的清单传递给一种简洁的方法吗?这是我正在尝试做的事情: 问题答案: 是。您可以这样操作: 在Python中运行此命令可以确认产生相同的结果:

  • 我已创建IAM策略并分配给IAM用户。 请查找保险单 我未选中s3 bucket testingbucket00的“阻止新公共bucket策略”。 我尝试登录aws控制台使用IAM用户列出所有桶,但显示"访问为错误"。 我想给IAM用户分配一个桶,请帮忙。

  • 我们有一个用例,在这个用例中,我们需要显示用户凭证参数,例如用户名和密码,并且基于用户名值和后端的密码验证,我们必须呈现swagger API。无法理解如何根据身份验证结果呈现swagger API。 任何指针都将受到高度赞赏。