アプリでユーザーになりすますことができるようにしたいので、ウェブサイトのチュートリアルに従いました
ユーザーをユーザー「A」からユーザー「B」に変更しようとすると機能しますが、既にユーザー「B」になりすましているときにユーザー「C」に変更しようとすると、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 のコードのバグなのか、それとも他に欠けているものがあるのかはわかりません。
これは本当にバグですか?このコード ブロックをコメント アウトせずにこの機能を実現できますか?