Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JWT从Laravel中的令牌检索经过身份验证的用户_Php_Laravel_Api_Jwt_Jwt Auth - Fatal编程技术网

Php JWT从Laravel中的令牌检索经过身份验证的用户

Php JWT从Laravel中的令牌检索经过身份验证的用户,php,laravel,api,jwt,jwt-auth,Php,Laravel,Api,Jwt,Jwt Auth,当我在请求头中传递用户的jwt令牌时,我只获得该表中的用户信息 我有一个关系数据库,其中每个用户的数据都存储在另一个表中。 JWT只返回用户表中的用户详细信息(姓名、电子邮件等) 在获取所有用户的列表时,我可以将他们的数据存储在另一个表中,但我不知道如何使用jwt 有谁能指导我吗?我用的是拉威尔 这是用户资源 <?php namespace App\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; use

当我在请求头中传递用户的jwt令牌时,我只获得该表中的用户信息

我有一个关系数据库,其中每个用户的数据都存储在另一个表中。 JWT只返回用户表中的用户详细信息(姓名、电子邮件等)

在获取所有用户的列表时,我可以将他们的数据存储在另一个表中,但我不知道如何使用jwt

有谁能指导我吗?我用的是拉威尔

这是用户资源

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;
use App\History;
use App\Http\Resources\History as HistoryResource;

class Admin extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id'  => $this->id,
            'name' => $this->name,
            'email' => $this->email,
            'history' => HistoryResource::collection($this->history)
        ];
    }
}

您的问题是
JWTAuth::parseToken()->authenticate()
返回的是
用户
,而不是用户资源(
管理员

您只需从
$user
生成资源即可修复:

$admin = new Admin($user);
return response()->json(['user' => $admin]);

我可以通过简单的操作来修复它

    $user = auth()->user();
    $admin = Admin::find($user);
    $return = AdminResource::collection($admin);   
    return response()->json($return);

它返回了登录用户

它返回了一个空数组在创建管理资源之前,您可以验证
$user
是否有效吗<代码>dd($user)
    $user = auth()->user();
    $admin = Admin::find($user);
    $return = AdminResource::collection($admin);   
    return response()->json($return);