我希望能够在我的应用程序中模拟用户,所以我按照网站上的教程进行操作
如果我尝试将我的用户从用户“A”更改为用户“B”,它可以工作,但如果我尝试更改为用户“C”,而我已经在模拟用户“B”,该attemptSwitchUser
方法会抛出此异常:
You are already switched to "B" user.
500 Internal Server Error - LogicException
这是因为此方法检查当前用户名 (B) 是否等于我们要模拟的用户名 (C)
$token = $this->securityContext->getToken();
$originalToken = $this->getOriginalToken($token);
if (false !== $originalToken) {
if ($token->getUsername() === $request->get($this->usernameParameter)) {
return $token;
} else {
throw new \LogicException(sprintf('You are already switched to "%s" user.', $token->getUsername()));
}
}
但显然这不可能永远是这样,所以我不知道这是否是 Symfony 代码中的错误,或者是否还有其他我遗漏的东西。
这真的是一个错误吗?我可以在不注释掉这段代码的情况下实现这个功能吗?