您好我试图从给定令牌中获取电子邮件用户。我已尝试过解析令牌,但根据此example,我总是空或{}
值:
public function getAuthenticatedUser()
{
try {
if (! $user = JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['token_expired'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json(['token_invalid'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json(['token_absent'], $e->getStatusCode());
}
// the token is valid and we have found the user via the sub claim
return $user;
}
我将令牌放在url上,就像这个localhost:8000 / admin / user / get_all?token = {{token}},我还在标题中添加了token
标记。注意:我'使用邮递员发出请求。但是当我尝试将解析值传递给响应时,我总是得到{}
值:
$result = $this->getAuthenticatedUser();
return response()
->json([
'status'=>'success',
'user'=>$result,
'data'=> $users,
]);
如果我在这里错了,请纠正我:解析意义以获取身份验证用户的信息,例如电子邮件?
注意:我正在使用laravel 5.2,并且在路由中我已经内置了中间件jwt-auth,并且我正在使用此library for generate the token。
答案 0 :(得分:0)
看起来响应是正确的,但我不知道为什么只有{}
但实际上不是空的,当我尝试获取列表名之类的电子邮件时:
$result->email
我收到了使用该令牌记录的实际电子邮件,所以现在我得到了它,谢谢大家。