gpt4 book ai didi

php - Symfony3,设置用户上次登录日期

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:45 24 4
gpt4 key购买 nike

我有一个简单的登录表单:

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(
'users/login.html.twig',
[
'page' => 'login',
'last_username' => $lastUsername,
'error' => $error,
]
);
}

安全.yml:

secured_area:
form_login:
provider: user_db_provider
login_path: /login
check_path: /login
csrf_token_generator: security.csrf.token_manager

我正在尝试设置用户的上次登录时间。

我真的必须创建一个新的监听器并编写整个类吗,比如 this answer ,仅针对这条指令:$user->setLastLogin(new\DateTime());?或者有没有更简单的东西,比如把它放在 Controller 中?

最佳答案

是的,您必须创建一个登录成功监听器,如 this answer 中所述, 并使用 onAuthenticationSuccess 方法来存储您的用户信息。

您发布的代码用于生成登录页面本身。任何登录操作都由防火墙处理,它会调用成功或失败的监听器。您可以在您的自定义监听器中执行您的代码(例如设置上次成功登录时间戳)。

这样做的原因是,最好创建执行单个任务的类,而不是将大量代码放在一个类中。这保持了代码的模块化、可扩展性和可维护性。

关于php - Symfony3,设置用户上次登录日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37630211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com