Symfony项目找不到用户界面

monwx1rj  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(162)

我在getToken方法中使用UserInterface,该方法接收注册的用户并为他生成令牌,但当我发送数据(在Postman中)时,我收到错误:
无法自动连接"App\Controller\AuthController::getTokenUser()"的参数$user:它引用了接口"Symfony\Component\Security\Core\User\UserInterface",但不存在这样的服务。是否创建了实现此接口的类?
编辑:我已经在每个需要的类中实现了UserInterface。很抱歉没有提到它
获取令牌的方法:

public function getTokenUser(UserInterface $user, JWTTokenManagerInterface $JWTManager)
{
    return new JsonResponse(['token' => $JWTManager->create($user)]);
}

方法路线:

api_login_check:
             path: /api/login_check
             controller: App\Controller\AuthController::getTokenUser
3npbholx

3npbholx1#

必须在App\Entity\User中使用UserInterface实现类User

use Symfony\Component\Security\Core\User\UserInterface;

class User implements UserInterface {
new9mtju

new9mtju2#

您只是忘了向请求中添加主体

{"username":"","password":""}
dtcbnfnu

dtcbnfnu3#

如果有人还在寻找解决方案,这里是你可以尝试的。我已经在多个项目中用多个端点测试过了。
如果你在postman中测试它,无论正文类型如何,尝试将其作为JSON字符串传递。它将工作。status code 200 image如果你在原始文本格式中请求,你将收到上述错误。它可能对register方法有效,但对getToken()方法无效。status code 500 image两种情况下随附的屏幕截图。

相关问题