先说我走过的坑:
我用了Laravel5.4,require了jwt的0.5.11版本,简直被坑哭了。
前期一帆风顺,当你要验证用户的时候,就会报一个错误:
Auth guard driver [api] is not defined.
宣告这个搭配已经Over了,我一路在源码dd也没dd出什么。
看了github的Issue,5.3及以上貌似就需要使用1.0.0beta版本了。
看Issue的时候,说的一本正经的那个朋友是个外国人,没怎么看懂,就照着开发版的源码看了一遍。
想看的可以看看这个: https://github.com/tymondesigns/jwt-auth/issues/860
好吧,差不多懂了,开搞:
image.png1 下载开发者版本
修改composer.json,添加 "tymon/jwt-auth": "dev-develop"
2 在
config/app.php
中添加provider
Tymon\JWTAuth\Providers\LaravelServiceProvider::class
3 发布配置
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
4 生成个密钥
php artisan jwt:secret
指定guard Model的修改5
config/auth.php
做点修改
最重要的东西6 Model里要做点事情了,我的Model是
App/Models/Users
7 使用示例
先将JWTAuth注入
设置Token
校验Token
在header
中添加如下头:
Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwMDEvYWNjZXNzX3Rva2VuIiwiaWF0IjoxNDk2NTgzMjE1LCJleHAiOjE0OTY1ODY4MTUsIm5iZiI6MTQ5NjU4MzIxNSwianRpIjoidmlvRWd1RTNkTmtBODgxMyIsInN1YiI6MTMsInBydiI6ImRiYWEzMGJkNTRjNzUyNmI2MGIyN2UzNzk0ODI3ZmU4In0.ZZX5LNVe4qGJcWNrYO-f9EMFqVCF37cO4S0r_pxDyyE
json格式,为了方便看
{
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwMDEvYWNjZXNzX3Rva2VuIiwiaWF0IjoxNDk2NTgzMjE1LCJleHAiOjE0OTY1ODY4MTUsIm5iZiI6MTQ5NjU4MzIxNSwianRpIjoidmlvRWd1RTNkTmtBODgxMyIsInN1YiI6MTMsInBydiI6ImRiYWEzMGJkNTRjNzUyNmI2MGIyN2UzNzk0ODI3ZmU4In0.ZZX5LNVe4qGJcWNrYO-f9EMFqVCF37cO4S0r_pxDyyE"
}
校验效果图
这样就OK了
网友评论