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 获取token




public 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 总结

不知道是我打开方式不对还是什么情况,其中有很多地方我都不小心踩过坑。。。哎。如有问题或者不同的建议,请点击上方的关于我,联系!