[英]Get user data from token
我一直在使用symfony和Graphql(youshido / graphql-bundle)创建API,我想从API内部的令牌中获取用户。 我应该在请求中传递用户名作为参数,否则我可以从令牌中为所有请求获取用户?
最好的解决方案是什么? 以及如何获取关于resolve函数的令牌?
public function resolve($value, array $args, ResolveInfo $info)
{
return $this->container->get('resolver.user')->save($args);
}
谢谢。
如果要开发API,则必须在每个请求中使用Bearer Token验证用户身份。 Apis是无状态的:它们不会在您的浏览器中存储cookie信息(您可以,但是没有意义)。 相反,您在每个请求的授权标头中传递一个令牌,这就是您进行身份验证的方式。
您可以使用经过验证的lexik / jwt-authentication-bundle来实现json网络令牌认证系统。 但是首先要确保您了解什么是JWT以及如何正确使用它们。
解决方案是在构造器中注入TokenStorage,然后从中获取用户
public function __construct(TokenStorage $tokenStorage)
{
$this->tokenStorage = $tokenStorage;
}
从令牌中获取用户:
$user = $this->tokenStorage->getToken()->getUser();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.