PHPackages                             idopin/api-support - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. idopin/api-support

ActiveLibrary[API Development](/categories/api)

idopin/api-support
==================

Laravel project api support.

v1.0.0(4y ago)010MITPHPPHP ^8.1

Since May 3Pushed 4y ago1 watchersCompare

[ Source](https://github.com/idopincn/laravel-api-support)[ Packagist](https://packagist.org/packages/idopin/api-support)[ RSS](/packages/idopin-api-support/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (0)

 Apisupport
============

[](#-apisupport-)

### 一、安装

[](#一安装)

```
composer require idopin/api-support:^1.0
```

功能：

- 图片验证码
- 阿里短信验证码
- 路由守卫中间件
- 用户登录
- 文件上传与获取

### 二、配置

[](#二配置)

#### 2.1 异常处理

[](#21-异常处理)

在文件 `app\Exceptions\Handler.php` 中添加以下方法：

```
public function render($request, Throwable $e)
{
    if ($request->is('api/*')) {
        return $this->jsonResponse($e);
    }

    return  parent::render($request, $e);
}
```

#### 2.2 创建迁移

[](#22-创建迁移)

```
php artisan migrate
```

运行命令后，将会生成7个表：

1. oauth\_access\_tokens
2. oauth\_auth\_codes
3. oauth\_clients
4. oauth\_personal\_access\_clients
5. oauth\_refresh\_tokens
6. files
7. user\_files

#### 2.3 执行 Aritsan 命令

[](#23-执行-aritsan-命令)

```
php artisan authorization:install
```

运行此命令后，生成：

- 安全访问令牌加密秘钥；

    \\storage\\oauth-private.key

    \\storage\\oauth-public.key
- 访问令牌的 **个人访问客户端(id:1)** 和 两个**密码授权客户端(id:2，id3)**

#### 2.4. 添加 Trait

[](#24-添加-trait)

添加 `Laravel\PassportHasApiTokens` trait 到 `App\Models\User` 模型中，此 trait 提供一些帮助方法用于检查已认证用户的令牌和权限范围。

#### 2.5 配置文件

[](#25--配置文件)

在配置文件`config/auth.php` 中，将 api 的授权看守器 guards 的 driver 设置为 passport。

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

#### 2.6 .自定义用户名字段

[](#26-自定义用户名字段)

当使用密码授权方式验证时，Passport 默认使用你的授权模型的 `email` 属性作为 “用户名”。当然，你也可以通过在你的模型中定义 `findForPassport` 方法来定义验证行为：

```
