一、环境要求
php > 7.1.3
二、laravel框架搭建
1 安装laravel(先安装好composer)
composer create-project --prefer-dist laravel/laravel live "5.6.*"
2.1 安装dingo
修改composer.json文件,在 require中添加
"dingo/api": "2.0.0-alpha1"
然后使用命令行,进入项目目录,执行
composer update
来更新、安装新包
接下来就publish
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
2.2 创建Api
修改routes/api.php
<?php
$api = app("Dingo\Api\Routing\Router");
$api->version('v1', function ($api) {
$api->group(["namespace" => "App\Api\Controllers"], function ($api) {
//之后在这里写api
});
});
});
2.3 创建BaseController
<?php
namespace App\Api\V1\Controllers;
use Illuminate\Routing\Controller;
use Dingo\Api\Routing\Helpers;
class BaseController extends Controller
{
use Helpers;
//其他初始化操作
}
3.1 安装jwt
修改composer.json文件,在 require中添加
"tymon/jwt-auth": "^1.0.0-rc.1"
然后使用命令行,进入项目目录,执行
composer update
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
3.2 生成秘钥
php artisan jwt:secret
3.3 修改User模型(我的路径为app\Api\Model\UserAuth.php)
<?php
namespace App\Api\Model;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authuser;
class UserAuth extends Authuser implements JWTSubject
{
use Notifiable;
// Rest omitted for brevity
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
//定义表
protected $table = "user";
//定义主键
protected $primaryKey = "uid";
}
3.4 配置Auth guard
修改config/auth.php
修改defaults的guards为
'guard' => 'api',
在guards中添加
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
在provides中,修改users为
'users' => [
'driver' => 'eloquent',
'model' => App\Api\Model\UserAuth::class
],
3.5 创建UserController
<?php
namespace App\Api\V1\Controllers;
use Illuminate\Support\Facades\Auth;
class UserController extends BaseController
{
private function guard()
{
return Auth::guard();
}
}
至此,laravel框架搭建完成