当前位置: 首页 > 工具软件 > jwt-auth > 使用案例 >

php jwt 实例,Laravel框架JWT-auth使用实例

房时铭
2023-12-01

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

 类似资料: