如何从 JWTAuth JSON 数据中访问单个值

Posted

技术标签:

【中文标题】如何从 JWTAuth JSON 数据中访问单个值【英文标题】:How to access individual values from JWTAuth JSON data 【发布时间】:2016-09-15 09:26:32 【问题描述】:

我正在尝试从 JWTAuth 令牌“用户”键的返回中提取 JSON 值,但无法弄清楚如何使用 php.ini 处理内部键。我有以下代码:

if(!$user = JWTAuth::parseToken()->authenticate())
        abort(401);
     

    else
        return response()->json(compact('user'));

    

当在标头中包含正确的令牌时,我确实收到了用户信息

"user":"id":2,"organization_name":"test corp","user_type":"administrator","created_at":"2016-05-13 17:26:20","updated_at":"2016-05-13 17:26:20","user_firstname":"Requester","user_lastname":"chester","user_emailaddress":"requester@test.com","remember_token":null,"user_id":"uid-7e3a0e15-c97b-44b1-885d-4370f4d1"

但是,我想不出一种方法来解决“用户”键中键的各个值。如何获取“user_firstname”键的值?

谢谢。

更新

在 laravel 中使用 Log::Info 函数将数据记录到本地日志中。以下:

$json = response()->json(compact('user')); 
$arr = json_decode($json, true); 
Log::Info(var_dump($arr)); 
Log::Info($arr["user"]["user_firstname"]);

对于 var 转储和多维数组调用都返回 NULL

【问题讨论】:

【参考方案1】:
 $json = '"user":"id":2,"organization_name":"test corp","user_type":"administrator","created_at":"2016-05-13 17:26:20","updated_at":"2016-05-13 17:26:20","user_firstname":"Requester","user_lastname":"chester","user_emailaddress":"requester@test.com","remember_token":null,"user_id":"uid-7e3a0e15-c97b-44b1-885d-4370f4d1"';

 $arr = json_decode($json, true); //Converts JSON string into array

 echo "<pre>";
 print_r($arr);
 echo "<pre>";

您可以访问数组值:

 echo $arr["user"]["user_firstname"]; //Prints Requester

【讨论】:

【参考方案2】:

您可能想了解 json_encode 和 json_decode 以将 json 对象转换为数组,反之亦然。请参阅此处的手册 - http://php.net/manual/en/function.json-decode.php

$array = json_decode($json, true);
var_dump($array);
echo $array["user"]["user_firstname"];

【讨论】:

你可以试试 Log::info('用户登录', ['id' => $arr['user']['id']]);然后检查 storage/logs/* 记录日志的位置。 这就是解决方案。 ['oid' => $user->organization_id] 返回指定用户的组织 ID。谢谢。 太棒了!我很高兴你得到它。

以上是关于如何从 JWTAuth JSON 数据中访问单个值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Guzzle 和 Laravel 从 JSON 响应中提取单个数组值

如何在dataTable的单个单元格中添加多个json值

如何在 Objective-C 中访问键的单个 JSON 值

如何从 laravel 刀片访问 JWT?

如何使用 CreateNativeQuery 从 SQL 数据库值中查询单个值?

Swift JSON响应两个字段值附加到单个数组中