Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
来源:互联网 发布:鹿晗人品知乎 编辑:程序博客网 时间:2024/05/16 23:29
Lumen轻量级的框架,用来做API很合适,起码本人这么想。
做API,可以配合Dingo/Api来搞。
Dingo/Api可以使用的用户认证方式有:
- HTTP Basic (Dingo\Api\Auth\Provider\Basic)
- JSON Web Tokens (Dingo\Api\Auth\Provider\JWT)
- OAuth 2.0 (Dingo\Api\Auth\Provider\OAuth2)
需要用的工具有:
- Lumen
- Dingo/Api
- Tymon/JWT-Auth
API可以简单的分三个部分:
- 登录
- 验证
- 具体的API行为
所以,先从登录开始。
这里的API服务基于Lumen实现。Laravel的实现还没搞过,以后再说。
一、Tymon/JWT-Auth安装
1、Lumen环境下执行:
然后需要添加“JWTAuthServiceProvider”到 Provider List。在Laravel环境中配置放在config/app.php中,但在Lumen环境有些不同。2、在"bootstrap/app.PHP" 文件中,找到Register Service Providers一节,添加:
3 、在“app”目录下创建“helpers.php”文件。
内容如下:
修改composer.json文件。添加:
执行:
4、生成jwt-auth的配置文件
最简单的办法是从/vendor/tymon/jwt-auth/src/config/config.php 复制一份到config/jwt.php。
因为lumen没有vendor:publish命令,所以,可以装basicit/lumen-vendor-publish来解决。
然后执行:
会以config目录下生成jwt.php文件。这就是jwt-auth的配置文件。
执行“php artisan jwt:generate ”生成secret。
5、Adding facades
a)bootstrap/app.php文件中去掉"$app->withFacades();"前的注释。
b)在这行下面添加“$app->configure('jwt');”,不然调用不到jwt的配置文件。
c)紧接着是facades。
6、jwt的配置文件里保持默认就可以。想知道具体含义可以参考它的文档。secret是必须设的。前面已经设过了。
7、在bootstrap/app.php文件中,查找Register Middleware 小节。去掉"routeMiddleware"的注释,修改成下面这样:
9、登录。下面要做的就是写一个登录的程序,因为lumen没有,要自己写。
建一个路由“$app->post('auth/login', 'App\Http\Controllers\Auth\AuthController@postLogin');”
在“app/Http/Controllers/Auth/AuthController.php”中创建我们的登录代码。
示例如下:
此时,用post方式提交一个登录请求会得到json格式的返回值,里面就是登录后获得的token.10、还要提一下,jwt-auth默认使用Users表做为登录认证的表,这个表跟laravel是一样的。所以可以直接从laravel复制过来。
也可以另外指定。具体请看jwt.php中"User Model namespace" 的设置。
也就是,创建"User" model,生成数据库表users。再插入几条用户记录,到此项目完成。
但是!!!这里有个问题,User Model有些内容必须要有。
如下:
请跟自己的User Model对比一下。出现如下错误一般都是User Model有问题。
另外,有条件的可以装个Postman。这个工具非常非常棒。
--完--
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- Lumen 配合使用Dingo/Api的问题。
- lumen5.4整合dingo/api、jwt-auth
- Lumen中使用JWT-Auth刷新token实现方式
- Laravel 5 开发API(Dingo Api + JWT)
- Laravel (Lumen) 中使用JWT-Auth刷新token的问题
- Dingo + Laravel + JWT + Entrust + memcache 实现API设计
- Laravel实现dingo+JWT api接口之配置篇
- Laravel实现dingo+JWT api接口之实战篇
- Laravel实现dingo+JWT api接口之配置篇
- laravel 5.4 JWT + Dingo 构建API 攻略
- API接口JWT方式的Token认证(上),服务器(Laravel)的实现
- Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证
- Web API与JWT认证
- Laravel & Lumen RESTFul API 扩展包:Dingo API(一) —— 安装配置篇
- Laravel & Lumen RESTFul API 扩展包:Dingo API(三) —— Response(响应)
- c++中字符串函数(过程)的详细解释
- 浅谈C/C++回调函数(Callback)& 函数指针
- AndroidStudio导入PullToRefresh—RecyclerView-Extention
- 目标跟踪 浅谈
- 京东2017机试题目总结
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- ubuntu下安装cuda,cudnn以及tensorflow(gpu)
- Python调用“ImageMagick”:图片格式转换、尺寸修改、属性重构及加水印
- MyBaits缓存原理(源码级跟踪)
- easyui常见属性
- 对于多特征权值参数优化问题
- html5画布基础知识
- leetcode [Rotate Array]//待整理多种解法
- Vulken Prougraming Guide 读后感 拼错是因为不想被搜到