Laravel as API server

来自koorka知识分享
跳到导航 跳到搜索

安装并初始化项目

composer create-project --prefer-dist laravel/laravel project_name "5.5.*"
cd project_name
git init
git add .
git commit -m "Initial project"

创建数据库

配置项目: 编辑 .env 文件

安装 passport

安装

composer require laravel/passport=~4.0
php artisan migrate
php artisan passport:install

修改 App\User.php, 添加 Laravel\Passport\HasApiTokens trait :

<?php

namespace App;

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

修改 App\Providers\AuthServiceProvider, 在boot()方法中添加  Passport::routes(), 该方法将注册发布访问令牌所需的路由:

    public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
        //
    }

修改 config/auth.php, 将API认证的driver 修改为 passport:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

配置Passport

设置token的过期时间和刷新时间: 编辑App\Providers\AuthServiceProvider

    public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
        Passport::tokensExpireIn(now()->addDays(15));
        Passport::refreshTokensExpireIn(now()->addDays(30));
    }