Laravel5 JWT

在使用laravel集成的JWT的过程中遇到的坑

laravel官方的集成简介

环境: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();
//这样可以拿到用户的信息了

如果想要自定义字段信息,就有可能遇下面问题

Laravel5 JWT_第1张图片
自定义数据

如果你按照官网的代码直接输入以上的代码,会提示异常:JWT payload does not contain the required claims,这是因为在config\jwt.php 中有一个参数

Laravel5 JWT_第2张图片
jwt.php

这里设置必须要有的payload,可以去掉

当你自定义完了数据了,没有文档说怎么取。通过查看vender发现在目录\vendor\tymon\jwt-auth\src\Providers\JWT\NamshiAdapter.php这个文件下有decode,他返回的是Payload对象继续寻找源码\vendor/tymon/jwt-auth/src/Payload.php文件中有get方法,这个获得自定义的claim 最终这样

获取解析

如果有不对的地方欢迎指正
个人博客

你可能感兴趣的:(Laravel5 JWT)