以编程方式用户登录在Drupal 8中不起作用



我正在尝试在Drupal 8中以编程方式登录用户。这是我的代码。

if(isset($uid)) {
      $user = User::load($uid);
      user_login_finalize($user);
      $user_destination = Drupal::destination()->get();
      $response = new RedirectResponse($user_destination);
      $response->send();
      exit(0);
    }

我收到消息"会话打开了..."在看门狗中。但用户未登录。有人可以告诉我我的代码有什么问题吗?

在控制器中使用 exit(( 不是一个好主意。Drupal 在执行控制器后会产生更多的操作,但 exit(( 在执行脚本之前停止脚本。为了避免这种情况,您必须从控制器返回 RedirectResponce((:

if(isset($uid)) {
  $user = User::load($uid);
  user_login_finalize($user);
  $user_destination = Drupal::destination()->get();
  $response = new RedirectResponse($user_destination);
  return $response
}

最新更新