yaroslawww/laravel-jwt-auth

此包已被弃用且不再维护。作者建议使用think.studio/laravel-jwt-auth包。

另一个Laravel JWT认证包。

3.3.0 2023-09-10 07:39 UTC

This package is auto-updated.

Last update: 2023-09-10 08:13:40 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