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