1

在我们的用例中,我们需要在成功注册后立即自动登录用户以启用,而不是强制用户:

  1. 更改密码。
  2. 上传一个文件。

如何在 AccountController 的 register 方法中以编程方式实现这一点?

理想情况下,它应该是一个无缝的注册过程,以用户仪表板中的登录状态结束。

请求有价值的帮助/提示/指针...

谢谢!

4

1 回答 1

1

解决此问题的最佳方法是从密码重置控制器中获取提示,该控制器已经执行此操作(在这种情况下,它会在用户选择新密码后自动登录)。

因此,将其添加到register方法的底部AccountController

// 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 回调register.twig以将用户重定向到主页,而不是登录页面:

window.location.replace(site['uri']['public']);

登录后,用户将被自动重定向到其主要组的登录页面。

于 2016-08-12T18:19:25.260 回答