繁体   English   中英

从令牌获取用户数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM