前言
Lumen是一个基于Laravel的微框架,号称是以速度为生。截用Lumen官网的一段,号称是比silex和slim还要快。
本文将用Lumen来实现一个完整的用户注册、登录及获取用户信息的API。
Lumen官方网站:https://lumen.laravel.com/
Lumen中文网站:http://lumen.laravel-china.org/
安装
|
|
数据库配置
跟全栈框架 Laravel 框架不一样的是,所有的 Lumen 框架的配置信息都存储在 .env 文件中。一旦 Lumen 成功安装,你需要 配置本地环境,如果没有在目录下新建.env文件
三 配置迁移数据库
|
|
执行这条命令后,会在项目目录lumen/database/migrations/ 目录下生成一个php文件,这个文件主要包括两个函数,在up()函数中根据你的需求定义数据库字段。
执行命令,创建数据库
数据库会生成一张users表
创建用户数据模型
如果你的项目文件夹lumen\app\文件夹下没有User.php文件,那么新建一个User.php文件,文件内容如下:
路由定义
定义三个路由,实现用户登录,注册及获取用户信息
路由类型 | 路由路径 | 路由控制器 |
---|---|---|
POST | user/register | UserController@register |
POST | user/login | UserController@login |
GET | user/info | UserController@info |
根据上述表的内容,在routes/web.php中定义路由
Controller逻辑
在Lumen\app\Http\Controllers\文件夹下新建用户控制器UserController.php,实现用户注册、登录和用户信息获取功能
认证服务
必须要通过token验证才能获取用户信息。在Lumen\app\Http\Providers\AuthServiceProvider.php中定义验证服务。我们使用header包含token的形式来验证。修改Lumen\app\Http\Providers\AuthServiceProvider.php文件代码。
定义认证中间件
在Lumen\app\Http\Middleware\文件夹下定义认证路由中间件AuthToken.php,就是之前在路由中定义的”authToken”。
启用配置信息
在lumen\app\bootstrap\app.php中取消注释
启动服务,测试
|
|
1.用户注册
查看数据库
2.用户登录
登录后会更新数据库的api_token
3.获取用户信息
错误信息:
1.
解决办法,安装memcached 和php扩展
2.
解决办法,需要开启,路径app/bootstrap/app.php