【发布时间】:2018-10-20 23:32:27
【问题描述】:
我一直在使用 symfony 和 Graphql (youshido/graphql-bundle) 创建一个 API,我想从 API 内的令牌中获取用户。 我应该在请求中将用户名作为参数传递,或者我可以从令牌中获取所有请求的用户?
什么是最好的解决方案?以及如何在解析功能上获取令牌?
public function resolve($value, array $args, ResolveInfo $info)
{
return $this->container->get('resolver.user')->save($args);
}
谢谢。
【问题讨论】:
-
请链接您的
security.yml配置,一切都取决于此。如果您在经过身份验证的路由下,您将能够从令牌存储中检索用户(来自控制器的$this->getUser())。您也可以在所有应用程序中从 tokenStorage 服务获取用户。 -
我已经更新了问题
-
$tokenStorage = $this->container->get('security.token_storage'); $user = $tokenStorage->getToken()->getUser(); if($user instanceof User) { // The user which is calling you is currently authenticated } else { // Unfortunately the user IS'NT authenticated :/ }试试看,如果你进去else你有app/config/security.yml配置的错误