我正在尝试在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
}