think.studio/laravel-jwt-auth

另一个laravel jwt认证包。

3.3.0 2023-09-10 07:39 UTC

This package is auto-updated.

Last update: 2024-09-10 10:17:32 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

另一个laravel jwt认证包。
该包支持速度非常慢,你可能最好切换到一个更老且更常用的包: tymon/jwt-auth

安装

通过composer安装包

composer require think.studio/laravel-jwt-auth

你可以使用以下命令发布配置文件

php artisan vendor:publish --provider="JWTAuth\ServiceProvider" --tag="config"

你可以发布迁移文件

php artisan vendor:publish --provider="JWTAuth\ServiceProvider" --tag="migrations"

如果你没有加密/解密密钥,可以使用以下命令生成

php artisan jwt:keys:generate

配置

更新认证配置

// config/auth.php
  'guards' => [
        // ...
        'my_api_guard_name' => [
            'driver'      => 'jwt',
            'provider'    => 'users',
            'public_key'  => env('JWT_PUBLIC_KEY', 'jwt-keys/jwtRS256.key.pub'),
            'private_key' => env('JWT_PUBLIC_KEY', 'jwt-keys/jwtRS256.key'),
            'blocklist'   => 'filesystem',
            'options'     => [],
        ],
    ],

更新用户模型

use Illuminate\Foundation\Auth\User as Authenticatable;
use JWTAuth\Contracts\WithJwtToken;

class User extends Authenticatable implements WithJwtToken
{
    use \JWTAuth\Eloquent\HasJwtToken;
    //...
}

使用

登录

/** @var \JWTAuth\JWTGuard $auth */
$auth = Auth::guard('my_api_guard_name');
$token = $auth->attempt($request->only( 'email', 'password'));
if ($token) {
    $user = $auth->user();
    echo "Access token: {$token}";
    echo "User id: {$user->id}";
}

登出

if(Auth::guard('my_api_guard_name')->check()) {
    Auth::guard('my_api_guard_name')->logout();
}

致谢

  • Think Studio