在使用laravel集成的JWT的过程中遇到的坑
环境:laravel5.3+window+phpstudy
正常的使用方式
//设置token
$user = User::first();
//在这里会把user表中的所有字段都会添加进去payload中,在上一行代码使用User::select('id','name')->first()还是没有用,还是一样会把所有的字段都添加了
$token = JWTAuth::fromUser($user);
//获取token
//在请求中加上header,这个按照文档来
$user = JWTAuth::parseToken()->authenticate();
//这样可以拿到用户的信息了
//如果想要自定义字段信息,就有可能遇下面问题
一
如果你按照官网的代码直接输入以上的代码,会提示异常:JWT payload does not contain the required claims,这是因为在config\jwt.php 中有一个参数
![]()
这里设置必须要有的payload,可以去掉
二
当你自定义完了数据了,没有文档说怎么取。通过查看vender发现在目录\vendor\tymon\jwt-auth\src\Providers\JWT\NamshiAdapter.php这个文件下有decode,他返回的是Payload对象继续寻找源码\vendor/tymon/jwt-auth/src/Payload.php文件中有get方法,这个获得自定义的claim 最终这样