Userfrosting:如何让用户注册后很快自动登录
Userfrosting: How to make user login automatically soon after registration
在我们的用例中,我们需要在成功注册后立即自动登录用户以启用,而不是强制用户:
- 更改密码。
- 上传文件。
如何在 AccountController 的注册方法中以编程方式实现这一点?
理想情况下,它应该是一个无缝的注册过程,以用户仪表板中的登录状态结束。
请求有价值的帮助/提示/指点...
谢谢!
解决此问题的最佳方法是从 password reset controller 中获取提示,它已经这样做了(在这种情况下,它会在用户选择新密码后自动登录)。
因此,将此添加到 AccountController
中 register
方法的底部:
// Log out any existing user, and create a new session
if (!$this->_app->user->isGuest()) {
$this->_app->logout(true);
// Restart session
$this->_app->startSession();
}
// Auto-login the user
$this->_app->login($user);
$ms = $this->_app->alerts;
$ms->addMessageTranslated("success", "ACCOUNT_WELCOME", $this->_app->user->export());
您还需要修改 AJAX callback in register.twig
以将用户重定向到主页,而不是登录页面:
window.location.replace(site['uri']['public']);
用户登录后将自动重定向到其主要群组的登录页面。
在我们的用例中,我们需要在成功注册后立即自动登录用户以启用,而不是强制用户:
- 更改密码。
- 上传文件。
如何在 AccountController 的注册方法中以编程方式实现这一点?
理想情况下,它应该是一个无缝的注册过程,以用户仪表板中的登录状态结束。
请求有价值的帮助/提示/指点...
谢谢!
解决此问题的最佳方法是从 password reset controller 中获取提示,它已经这样做了(在这种情况下,它会在用户选择新密码后自动登录)。
因此,将此添加到 AccountController
中 register
方法的底部:
// Log out any existing user, and create a new session
if (!$this->_app->user->isGuest()) {
$this->_app->logout(true);
// Restart session
$this->_app->startSession();
}
// Auto-login the user
$this->_app->login($user);
$ms = $this->_app->alerts;
$ms->addMessageTranslated("success", "ACCOUNT_WELCOME", $this->_app->user->export());
您还需要修改 AJAX callback in register.twig
以将用户重定向到主页,而不是登录页面:
window.location.replace(site['uri']['public']);
用户登录后将自动重定向到其主要群组的登录页面。