Helle在那里!
我目前正在JWT进行身份验证。我是Symfony 5.3当我想测试我的登录时,我有一个错误:
<!-- Cannot autowire argument $user of "AppControllerAuthController::getTokenUser()": it references interface "SymfonyComponentSecurityCoreUserUserInterface" but no such service exists. Did you create a class that implements this interface? (500 Internal Server Error) -->
我已经安装了安全捆绑包和我的用户实体:
class User implements UserInterface, PasswordAuthenticatedUserInterface
有人能帮我吗?
感谢
也许你已经写了一行:
class User implements UserInterface, PasswordAuthenticatedUserInterface
而不预先创建use
语句?
use SymfonyComponentSecurityCoreUserUserInterface;
当你习惯于IDE为你做这件事时,这是一种典型的忽视,而在特定的时刻它并没有发生。
如果是这种情况,这也适用于PasswordAuthenticatedUserInterface
错误表明AuthController::getTokenUser()
方法有问题,而不是User
类有问题。你能贴出那个方法的签名吗?
根据你发布的内容,我猜测你的方法看起来像这样:public function getTokenUser(UserInterface $user)...
如果在该控制器方法中需要当前的User
,则应该注入SymfonyComponentSecurityCoreSecurity
,然后调用$security->getUser()
,如下所示:
public function getTokenUser (Security $security)
{
$user = $security->getUser();
}