diplodocker/auth-service

Laravel JWT 认证服务包

0.1.2 2022-10-11 13:10 UTC

This package is auto-updated.

Last update: 2024-09-11 18:04:08 UTC


README

关于

Build Status GitHub issues Made for Laravel PHP from Packagist

Laravel JWT 认证服务包 – 这只是对 tymon/jwt-auth 包的一个包装,包括服务、控制器和工厂。

包含

  • 控制器
  • 路由
  • 服务
  • 请求
  • 工厂

安装

composer require diplodocker/auth-service

配置 User 模型

  • 实现 Diplodocker\Services\Contracts\AuthorizationInterface
  • 使用 Diplodocker\Services\Concerns\CanUseAuthorizationTokens (或实现特性中的方法)
  • TABLE_NAMEATTR_EMAIL 常量添加到 User 模型
<?php
declare(strict_types=1);

namespace App\Models;

use Diplodocker\Services\Concerns\CanUseAuthorizationTokens;
use Diplodocker\Services\Contracts\AuthorizationInterface;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements AuthorizationInterface
{
    // ...
    use CanUseAuthorizationTokens;

    public const TABLE_NAME = 'users';
    public const ATTR_EMAIL = 'email';

    // ...
}

绑定接口

  • 打开(或创建)AppServiceProviderBindServiceProvider
  • boot 方法中将接口绑定到模型

示例

<?php
declare(strict_types=1);

namespace App\Providers;

use App\Models\User;
use Illuminate\Support\ServiceProvider;
use Diplodocker\Services\Contracts\AuthorizationInterface;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->bind(
            AuthorizationInterface::class,
            User::class
        );
    }
}

配置 auth 配置

'defaults' => [
+    'guard' => 'api',
],
'guards' => [
    'api' => [
+       'driver' => 'jwt',
        ...
    ],
],

运行命令

php artisan jwt:secret

路由