0x01 安装composer require tymon/jwt-auth 0.5.*
0x02 配置
安装完成后,需要在config/app.php中注册相应的服务提供者:
providers下:Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
aliases下:'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class
'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class
然后发布相应配置文件:php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
生成密钥:php artisan jwt:generate
修改API验证方式:
config/auth.php中的'api' => [
'driver' => 'jwt',//原来是token
'provider' => 'users',
],
修改Appuser.php<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* 白名单 $fillable 属性指定了哪些字段支持批量赋值
* @var array
*/
protected $fillable = ['guid', 'username', 'tel', 'password', 'pic', 'balance', 'status', 'addtime'];
/**
* 模型所使用的数据库表
* @var string
*/
protected $table = 'data_users';//改为你的用户表
/**
* 自定义主键
*/
protected $primaryKey = 'guid';//改为你的主键
/**
* 关闭 递增
*/
public $incrementing = false;
/**
* 关闭 创建时间 与 更新时间的自动维护
*/
public $timestamps = false;
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
路由:Route::group(['namespace' => 'Home','middleware' => ['api','response']],function (){
//商品列表+详情
Route::resource('/goodslist','GoodsController');
//商品分类
Route::resource('/class','ClassController');
//需要登陆才能查看的接口
Route::group(['middleware' => ['jwt.auth']],function (){
//购物车
Route::resource('/cart','CartController');
});
});
0x03 创建token需要引入的:
use App\user;
use JWTAuth;
//查询一条数据,并输出token$user = User::first();
$token = JWTAuth::fromUser($user);
0x04 获取tokenpublic function index(Response $response)
{
//获取用户信息
$user = JWTAuth::toUser(Input::get('token'));
//获取购物车信息
$cart = self::$cartService->getCart($user->id);
//判断是否有值
if (empty($cart) || ($cart->count() <= 0)){
return $response->setStatusCode(404);
}
return $cart;
}
0x05 总结不知道是我打开方式不对还是什么情况,其中有很多地方我都不小心踩过坑。。。哎。如有问题或者不同的建议,请点击上方的关于我,联系!