具体步骤参照: [ JWT & Lumen ]

第一步

在项目根目录 执行命令

composer require tymon/jwt-auth
第二步

在 bootstrap/app.php 的 Register Service Providers 部分添加注册

$app->register('Tymon\JWTAuth\Providers\JWTAuthServiceProvider');
//建议 改成这样
$app->register(Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class);
第三步

3.1 在 app 目录下创建 helper.php 文件 并写入以下代码

<?php

if ( ! function_exists('config_path'))
{
/**
* Get the configuration path.
*
* @param string $path
* @return string
*/
function config_path($path = '')
{
return app()->basePath() . '/config' . ($path ? '/' . $path : $path);
}
}
?>
3.2 在根目录 composer.json 文件内 “autoload” 部分 添加自动加载 helper.php

"files": [
"src/helpers.php"
]
3.3 运行

composer dump-autoload
第四步

注意: 如果不执行第四步,直接执行第五步,会报错:
“There are no commands defined in the “vendor” namespace. ”
所以要先引入 原文作者 写好的一个包 :
[vendorPublishCommand]

包文件内容:

执行

composer require laravelista/lumen-vendor-publish

在app/Console/Kernel.php中添加:

protected $commands = [
\Laravelista\LumenVendorPublish\VendorPublishCommand::class
];

也可以直接访问上面的地址,把代码挡下来, 放到 vendor/basicit/lumen-vendor-publish 目录下,
basicit/lumen-vendor-publish 目录需要自己手动创建
这样就不用执行 下面的命令了, 由于国内被墙, 执行命令会很慢!

4.1 运行 composer require basicit/lumen-vendor-publish 命令(时间很长)

4.2 在 app/Console/Kernel.php 文件内 添加

protected $commands = [

'BasicIT\LumenVendorPublish\VendorPublishCommand'

];

第五步

运行

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
第六步

去 bootstrap/app.php 内, 找到 $app->withFacades(); 并去掉注释,在下面写上

$app->configure('jwt');
class_alias('Tymon\JWTAuth\Facades\JWTAuth', 'JWTAuth');
class_alias('Tymon\JWTAuth\Facades\JWTFactory', 'JWTFactory');
第七步

项目根目录执行 生成JWT密钥

项目根目录运行

php artisan jwt:generate
执行完了之后,会在 config/jwt.php 文件里自动配置好 秘钥

'secret' => env('JWT_SECRET', '4N49NxgrULTbBdG0OTZ6K60bxr1RIl'),
这个秘钥也可以移动到 .env文件里,如下

# JWT
JWT_SECRET=4N49NxgrULTbBdG0OTZ6K60bxr1RIl

注意: 如果使用 postman 测试 接口,在使用 PUT 等协议方法的情况下, 使用 x-www-form-urlencoded 发送数据, 不要使用默认的 form-data格式的数据
第八步

在某些情况下,可能某些接口,需要token 验证,某些则不需要 就需要去 bootstrap/app.php 里面
找到 “Register Middleware” 部分,去掉 “routeMiddleware” 注释
并添加代码后是这样:

$app->routeMiddleware([
'jwt.auth' => Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => Tymon\JWTAuth\Middleware\RefreshToken::class,
]);
然后你就可以去 你的路由里面 这样写了,表示在请求这个路由的时候,会首先进行JWT验证

$app->group(['prefix' => 'projects', 'middleware' => 'jwt.auth'], function($app) {
$api->get('auth/show', [
'as' => 'auth.show',
'uses' => 'AuthController@show'
]);
});
如果你用的是Dingo API 的话,就这样写

$api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1'], function ($api) {

// 需要jwt验证后才能使用的API 也就是登陆之后,才能访问的路由,比如用户详细
$api->group(['middleware' => 'jwt.auth'], function ($api) {
#Auth
$api->get('auth/show', [
'as' => 'auth.show',
'uses' => 'AuthController@show'
]);
});
});
第九步

把 /vendor/laravel/lumen-framework/config/auth.php 复制 到 根目录下的 config 目录下,
并且 修改

'model' => env('AUTH_MODEL', 'App\User'),

'model' => env('AUTH_MODEL', 'App\Models\User'),

如果出现 App\User not found 说明没有定义 User 的 model, JWT 最终还是去调用的 Laravel的 auth,他会去实例化 UserModel
 如果以上步骤都正确, 就可以写个登陆方法进行测试了.

Laravel-lumen 配置JWT的更多相关文章

  1. laravel(lumen)配置读写分离后,强制读主(写)库数据库,解决主从延迟问题

    在Model里面加上下面这句,强制读主(写)库数据库,解决主从延迟问题. public static function boot() { //清空从连接,会自动使用主连接 DB::connection ...

  2. phpstorm laravel单元测试 配置

    laravel中集成了单元测试工具phpunit可以在项目的根目录下进行使用,命令是:phpunti ./tests/单元测试文件名称.在phpstorm中使用phpunit需要做一些配置,指定com ...

  3. Laravel 中使用 JWT 认证的 Restful API

    Laravel 中使用 JWT 认证的 Restful API 5天前/  678 /  3 / 更新于 3天前     在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...

  4. LaravelS - 基于Swoole加速Laravel/Lumen

    LaravelS LaravelS是一个胶水项目,用于快速集成Swoole到Laravel或Lumen,然后赋予它们更好的性能.更多可能性.Github 特性 内置Http/WebSocket服务器 ...

  5. laravel/lumen 的构造函数需要注意的地方

    比如 lumen,ConsoleServiceProvider 里面的 register 做了下面的处理: \Laravel\Lumen\Console\ConsoleServiceProvider: ...

  6. laravel数据库配置

    1.说明,查看laravel数据库配置 项目名/config/database.php     'default' => env('DB_CONNECTION', 'mysql') 2.数据开发 ...

  7. 解决 Laravel/Lumen 出现 "Please provide a valid cache path" 问题

    解决 Laravel/Lumen 出现 "Please provide a valid cache path" 问题 解决 Laravel/Lumen 出现 "Pleas ...

  8. laravel 框架配置404等异常页面的方法详解(代码示例)

    本篇文章给大家带来的内容是关于laravel 框架配置404等异常页面的方法详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Laravel中所有的异常都由Handl ...

  9. laravel Lumen邮箱发送配置

    Lumen 中配置邮件 https://blog.csdn.net/glovenone/article/details/54344013 Lareval 比 Lumen 多了一个步骤 https:// ...

  10. nginx配置laravel lumen重写

    location / { try_files $uri $uri/ /index.php?$query_string;}

随机推荐

  1. myeclipse学习总结三(MyEclipse文件查找技巧)

    一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字符串的文件 使用快捷键[ctrl+H]在弹出对话框中选File Search选项,然后在第一个文 ...

  2. 基于HTTP的断点传输

    最近项目需要做一个类似于迅雷的文件下载功能,这类需求可能比较常见,希望可以帮助到有需要的同学 要求: 1.支持断点传输 2. 多文件同时下载 3. 由于是客户内部试用,服务器只支持HTTP文件下载不支 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展

    系列目录 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结.首先这是一个团队开发项目,基于接 ...

  4. JavaScript动画-模拟拖拽

    模拟拖拽的原理: x1等于div.offsetLeft y1等于div.offsetTop x2等于ev.clientX(ev表示event事件) y2等于ev.clientY 当我们在方块上按下鼠标 ...

  5. CSS3 Notes: -webkit-box-reflect实现倒影

    平常我们要实现倒影的效果,一般的做法是使用多个DOM元素绝对定位+scale(负-1)或者rotate.这种方法的缺点是占据空间以及DOM元素过多. 在使用webkit内核的浏览器中(chrome,s ...

  6. SQL语句优化

    (1)      选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表dri ...

  7. 单机静默安装GI软件并创建ASM实例和ASM磁盘组

    环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...

  8. 分布式系统理论进阶 - Paxos变种和优化

    引言 <分布式系统理论进阶 - Paxos>中我们了解了Basic Paxos.Multi Paxos的基本原理,但如果想把Paxos应用于工程实践,了解基本原理还不够. 有很多基于Pax ...

  9. SSRS 实用技巧 ---- 为表格添加展开/折叠操作(明细报表)

    相信很多人都会遇到这样的需求:当表格按照某几个列分组时,需要为组添加展开和折叠的操作. 最初展现表格的时候只展现最外层分组,然后点击展开后可以查看分组内的明细情况. 先来一张效果图,然后再看具体如何实 ...

  10. 【十大经典数据挖掘算法】SVM

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART SVM(Support Vector ...