带有 UserInterface 和 getToken 的 Symfony 错误
Posted
技术标签:
【中文标题】带有 UserInterface 和 getToken 的 Symfony 错误【英文标题】:Symfony bug with UserInterface and getToken 【发布时间】:2022-01-05 06:36:37 【问题描述】:嘿嘿!
我目前正在使用 JWT 进行身份验证。 我使用 Symfony 5.3 我想测试我的登录时出错:
<!-- Cannot autowire argument $user of "App\Controller\AuthController::getTokenUser()": it references interface "Symfony\Component\Security\Core\User\UserInterface" but no such service exists. Did you create a class that implements this interface? (500 Internal Server Error) -->
我已经安装了安全包和我的用户实体:
class User implements UserInterface, PasswordAuthenticatedUserInterface
有人可以帮助我吗?
谢谢
【问题讨论】:
避免在提问中使用图片。考虑更新问题并在错误的相关部分复制/粘贴。 【参考方案1】:也许你写过这行:
class User implements UserInterface, PasswordAuthenticatedUserInterface
之前没有创建use
语句?
use Symfony\Component\Security\Core\User\UserInterface;
当您习惯了 IDE 为您执行此操作时,这是一个典型的忽略,并且在特定时刻它不会发生。
如果是这种情况,这也适用于PasswordAuthenticatedUserInterface
【讨论】:
您好,感谢您的回答。但我有:namespace App\Entity; use App\Repository\UserRepository; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; /** * @ORM\Entity(repositoryClass=UserRepository::class) */ class User implements UserInterface, PasswordAuthenticatedUserInterface
检查这个问题,它可能会有所帮助:***.com/a/47964557/17089665
我总是报错 /:【参考方案2】:
错误表明您的 AuthController::getTokenUser()
方法存在问题,而不是您的 User
类。您可以发布该方法的签名吗?
根据您发布的内容,我的猜测是您的方法如下所示:
public function getTokenUser(UserInterface $user)...
如果你在那个控制器方法中需要当前的User
,你应该注入Symfony\Component\Security\Core\Security
,然后像这样调用$security->getUser()
:
public function getTokenUser (Security $security)
$user = $security->getUser();
【讨论】:
以上是关于带有 UserInterface 和 getToken 的 Symfony 错误的主要内容,如果未能解决你的问题,请参考以下文章
Twain 在 DAT_USERINTERFACE 中禁用 UI,在扫描期间仍显示 UI
纠正 PHPStan 在 Symfony 项目的 UserInterface 上抛出的类型提示错误
javascript 1900年至2100年公历,农历互转Js代码形式:http://blog.jjonline.cn/userInterFace/173.html