咱們會使用 tymondesigns/jwt-auth 擴展包來讓咱們在 Laravel 中使用 JWT。php
讓咱們在這個 Laravel 應用中安裝這個擴展包。若是您正在使用 Laravel 5.5 或以上版本,請運行如下命令來獲取 dev-develop 版本的 JWT 包:git
composer require tymon/jwt-auth:dev-develop --prefer-source
對於 5.5 或以上版本 的 Laravel,請使用下面這條命令來發布配置文件:github
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
上面的命令會生成 config/jwt.php 配置文件。除去註釋部分,配置文件會像這樣:cookie
<?php return [ 'secret' => env('JWT_SECRET'), 'keys' => [ 'public' => env('JWT_PUBLIC_KEY'), 'private' => env('JWT_PRIVATE_KEY'), 'passphrase' => env('JWT_PASSPHRASE'), ], 'ttl' => env('JWT_TTL', 60), 'refresh_ttl' => env('JWT_REFRESH_TTL', 20160), 'algo' => env('JWT_ALGO', 'HS256'), 'required_claims' => [ 'iss', 'iat', 'exp', 'nbf', 'sub', 'jti', ], 'persistent_claims' => [ // 'foo', // 'bar', ], 'lock_subject' => true, 'leeway' => env('JWT_LEEWAY', 0), 'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true), 'blacklist_grace_period' => env('JWT_BLACKLIST_GRACE_PERIOD', 0), 'decrypt_cookies' => false, 'providers' => [ 'jwt' => Tymon\JWTAuth\Providers\JWT\Lcobucci::class, 'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class, 'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class, ], ];
JWT 令牌經過一個加密的密鑰來簽發。對於 Laravel 5.5 或以上版本,運行下面的命令來生成密鑰以便用於簽發令牌composer
php artisan jwt:secret