devraeph / laravel-xtoken
该包为应用创建JWTToken,并提供认证中间件
1.5.4
2022-08-22 19:13 UTC
Requires
- hisorange/browser-detect: ^4.3
- lcobucci/jwt: 4.1.5
README
DevRaeph / laravel-xtoken
这是一个简单的包,可以用来发行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();