devraeph/laravel-xtoken

该包为应用创建JWTToken,并提供认证中间件

1.5.4 2022-08-22 19:13 UTC

This package is auto-updated.

Last update: 2024-09-22 23:29:41 UTC


README

Social Card of laravel-xtoken

DevRaeph / laravel-xtoken

Total Downloads Latest Stable Version Issues

这是一个简单的包,可以用来发行JWT令牌,也可以验证它们。由于存在现有特质,可用于多种模型。

安装

该包可在 Packagist 上找到,您可以使用 Composer 进行安装。

composer require devraeph/laravel-xtoken

迁移数据库以创建令牌表

php artisan migrate

发布配置

php artisan vendor:publish --provider="DevRaeph\XToken\JWTTokenServiceProvider" --tag="config"

文档

模型特质 HasXToken
示例

namespace App\Models;
use DevRaeph\XToken\Traits\HasXToken;

class User extends Authenticatable
{
    use HasFactory, HasXToken;

    ...
}

发行令牌

use DevRaeph\XToken\Facades\Tokenizer;
use Carbon\CarbonImmutable;

$myJWT = Tokenizer::setModel(/* MODEL eg USER */)
        ->setIssuedBy(/* Default is env("APP_URL") */)
        ->setExpiresAt(CarbonImmutable::now()->addDays(15))
        ->createToken();      
        
return $myJWT->toArray(); //Return Token Array
return $myJWT->toJson();  //Return Token Json

在路由中使用中间件解析令牌

/*
 * Use exsisting `xToken` middleware
 */
Route::group(['middleware' => ['api','xToken']], function () {
    Route::post("verify",function (){
        echo "Checked Token -> Valid";
    });
});

获取TokenClaim -> 模型ID

use App\Models\User;
use DevRaeph\XToken\Facades\TokenizerClaim;

$myClaim = TokenizerClaim::setRequest($request)
    ->get();
    
$myUser = User::whereId($myClaim)->first();